diff --git a/src/array.c b/src/array.c index 2697bdeb8bc8d560ba06877f1b4ac0cf474f0fe7..88237a175e8e906b39eecc25f4d0906f5374404b 100644 --- a/src/array.c +++ b/src/array.c @@ -37,9 +37,10 @@ struct array empty_array= * NOTE: the new array have zero references */ -struct array *allocate_array_no_init(INT32 size,INT32 extra_space) +struct array *low_allocate_array(INT32 size,INT32 extra_space) { struct array *v; + INT32 e; if(size == 0) { @@ -67,21 +68,14 @@ struct array *allocate_array_no_init(INT32 size,INT32 extra_space) empty_array.next=v; v->next->prev=v; - return v; -} - -struct array *allocate_array(INT32 size) -{ - INT32 e; - struct array *a; - a=allocate_array_no_init(size,0); - for(e=0;e<a->size;e++) + for(e=0;e<v->size;e++) { - ITEM(a)[e].type=T_INT; - ITEM(a)[e].subtype=NUMBER_NUMBER; - ITEM(a)[e].u.integer=0; + ITEM(v)[e].type=T_INT; + ITEM(v)[e].subtype=NUMBER_NUMBER; + ITEM(v)[e].u.integer=0; } - return a; + + return v; } /* diff --git a/src/array.h b/src/array.h index 758fc6cbad1414fcfdfc21b02845b52f7785b53f..a0a058021fe3dcb413cf160fe71e71f5c4c84f5d 100644 --- a/src/array.h +++ b/src/array.h @@ -47,6 +47,8 @@ struct array #define free_array(V) do{ struct array *v_=(V); if(!--v_->refs) really_free_array(v_); }while(0) +#define allocate_array(X) low_allocate_array((X),0) +#define allocate_array_no_init(X,Y) low_allocate_array((X),(Y)) typedef int (*cmpfun)(struct svalue *,struct svalue *); typedef int (*short_cmpfun)(union anything *, union anything *); @@ -54,8 +56,7 @@ typedef short_cmpfun (*cmpfun_getter)(TYPE_T); /* Prototypes begin here */ -struct array *allocate_array_no_init(INT32 size,INT32 extra_space); -struct array *allocate_array(INT32 size); +struct array *low_allocate_array(INT32 size,INT32 extra_space); void really_free_array(struct array *v); void array_index_no_free(struct svalue *s,struct array *v,INT32 index); void array_index(struct svalue *s,struct array *v,INT32 index);