call h_arena_free when resizing in h_carray_append
This commit is contained in:
parent
a3290770e2
commit
d2ade1f5b4
1 changed files with 2 additions and 1 deletions
|
|
@ -25,11 +25,12 @@ HCountedArray *h_carray_new(HArena * arena) {
|
||||||
|
|
||||||
void h_carray_append(HCountedArray *array, void* item) {
|
void h_carray_append(HCountedArray *array, void* item) {
|
||||||
if (array->used >= array->capacity) {
|
if (array->used >= array->capacity) {
|
||||||
HParsedToken **elements = h_arena_malloc(array->arena, (array->capacity *= 2) * sizeof(HCountedArray*));
|
HParsedToken **elements = h_arena_malloc(array->arena, (array->capacity *= 2) * sizeof(void*));
|
||||||
for (size_t i = 0; i < array->used; i++)
|
for (size_t i = 0; i < array->used; i++)
|
||||||
elements[i] = array->elements[i];
|
elements[i] = array->elements[i];
|
||||||
for (size_t i = array->used; i < array->capacity; i++)
|
for (size_t i = array->used; i < array->capacity; i++)
|
||||||
elements[i] = 0;
|
elements[i] = 0;
|
||||||
|
h_arena_free(array->arena, array->elements);
|
||||||
array->elements = elements;
|
array->elements = elements;
|
||||||
}
|
}
|
||||||
array->elements[array->used++] = item;
|
array->elements[array->used++] = item;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue