[qfcc] Rename ex_list_t to ex_boollist_t

I need to create an actual expression list type and want the name.
This commit is contained in:
Bill Currie 2023-09-22 20:26:41 +09:00
parent 2e90022d5c
commit 9af94da151
3 changed files with 17 additions and 16 deletions

View file

@ -136,11 +136,11 @@ typedef struct ex_func_s {
typedef struct {
int size;
struct expr_s *e[1];
} ex_list_t;
} ex_boollist_t;
typedef struct {
ex_list_t *true_list;
ex_list_t *false_list;
ex_boollist_t *true_list;
ex_boollist_t *false_list;
struct expr_s *e;
} ex_bool_t;
@ -441,7 +441,8 @@ expr_t *new_label_ref (ex_label_t *label);
*/
expr_t *new_state_expr (expr_t *frame, expr_t *think, expr_t *step);
expr_t *new_bool_expr (ex_list_t *true_list, ex_list_t *false_list, expr_t *e);
expr_t *new_bool_expr (ex_boollist_t *true_list, ex_boollist_t *false_list,
expr_t *e);
/** Create a new statement block expression node.
@ -828,7 +829,7 @@ void dump_dot_expr (void *e, const char *filename);
expr_t *convert_nil (expr_t *e, struct type_s *t);
expr_t *test_expr (expr_t *e);
void backpatch (ex_list_t *list, expr_t *label);
void backpatch (ex_boollist_t *list, expr_t *label);
expr_t *convert_bool (expr_t *e, int block);
expr_t *convert_from_bool (expr_t *e, struct type_s *type);
expr_t *bool_expr (int op, expr_t *label, expr_t *e1, expr_t *e2);

View file

@ -290,7 +290,7 @@ copy_expr (expr_t *e)
n->file = pr.source_file;
if (e->e.boolean.true_list) {
int count = e->e.boolean.true_list->size;
size_t size = (size_t)&((ex_list_t *) 0)->e[count];
size_t size = field_offset (ex_boollist_t, e[count]);
n->e.boolean.true_list = malloc (size);
while (count--)
n->e.boolean.true_list->e[count] =
@ -298,7 +298,7 @@ copy_expr (expr_t *e)
}
if (e->e.boolean.false_list) {
int count = e->e.boolean.false_list->size;
size_t size = (size_t)&((ex_list_t *) 0)->e[count];
size_t size = field_offset (ex_boollist_t, e[count]);
n->e.boolean.false_list = malloc (size);
while (count--)
n->e.boolean.false_list->e[count] =
@ -501,7 +501,7 @@ new_state_expr (expr_t *frame, expr_t *think, expr_t *step)
}
expr_t *
new_bool_expr (ex_list_t *true_list, ex_list_t *false_list, expr_t *e)
new_bool_expr (ex_boollist_t *true_list, ex_boollist_t *false_list, expr_t *e)
{
expr_t *b = new_expr ();

View file

@ -164,7 +164,7 @@ test_expr (expr_t *e)
}
void
backpatch (ex_list_t *list, expr_t *label)
backpatch (ex_boollist_t *list, expr_t *label)
{
int i;
expr_t *e;
@ -185,10 +185,10 @@ backpatch (ex_list_t *list, expr_t *label)
}
}
static ex_list_t *
merge (ex_list_t *l1, ex_list_t *l2)
static ex_boollist_t *
merge (ex_boollist_t *l1, ex_boollist_t *l2)
{
ex_list_t *m;
ex_boollist_t *m;
if (!l1 && !l2)
return 0;
@ -196,19 +196,19 @@ merge (ex_list_t *l1, ex_list_t *l2)
return l1;
if (!l1)
return l2;
m = malloc ((size_t)&((ex_list_t *)0)->e[l1->size + l2->size]);
m = malloc (field_offset (ex_boollist_t, e[l1->size + l2->size]));
m->size = l1->size + l2->size;
memcpy (m->e, l1->e, l1->size * sizeof (expr_t *));
memcpy (m->e + l1->size, l2->e, l2->size * sizeof (expr_t *));
return m;
}
static ex_list_t *
static ex_boollist_t *
make_list (expr_t *e)
{
ex_list_t *m;
ex_boollist_t *m;
m = malloc ((size_t)&((ex_list_t *) 0)->e[1]);
m = malloc (field_offset (ex_boollist_t, e[1]));
m->size = 1;
m->e[0] = e;
return m;