Lines Matching refs:array
30 static struct array *array_new(void);
31 static __inline void array_free(struct array *);
32 static struct array * array_dup(const struct array *);
33 static __inline void array_grow(struct array *, size_t);
34 static __inline void array_assign(struct array *, size_t, const struct value *);
35 static __inline struct value *array_retrieve(const struct array *, size_t);
68 array_free(v->array);
69 v->array = NULL;
91 copy->array = a->array == NULL ? NULL : array_dup(a->array);
149 stack->stack[stack->sp].array = NULL;
158 stack->stack[stack->sp].array = NULL;
176 stack->stack[stack->sp].array = v->array == NULL ?
177 NULL : array_dup(v->array);
196 stack->stack[stack->sp].array = v->array == NULL ?
197 NULL : array_dup(v->array);
214 array_free(stack->stack[stack->sp].array);
215 stack->stack[stack->sp].array = NULL;
228 array_free(stack->stack[stack->sp].array);
229 stack->stack[stack->sp].array = NULL;
258 static struct array *
261 struct array *a;
270 array_free(struct array *a)
282 static struct array *
283 array_dup(const struct array *a)
285 struct array *n;
298 array_grow(struct array *array, size_t newsize)
302 array->data = breallocarray(array->data, newsize, sizeof(*array->data));
303 for (i = array->size; i < newsize; i++) {
304 array->data[i].type = BCODE_NONE;
305 array->data[i].array = NULL;
307 array->size = newsize;
311 array_assign(struct array *array, size_t index, const struct value *v)
313 if (index >= array->size)
314 array_grow(array, index+1);
315 stack_free_value(&array->data[index]);
316 array->data[index] = *v;
320 array_retrieve(const struct array *array, size_t index)
322 if (index >= array->size)
324 return &array->data[index];
330 struct array *a;
335 n.array = NULL;
339 a = stack->stack[stack->sp].array;
341 a = stack->stack[stack->sp].array = array_new();
348 struct array *a;
352 a = stack->stack[stack->sp].array;
354 a = stack->stack[stack->sp].array = array_new();