From d2ade1f5b4f8c438353d79085c55b1c06436b372 Mon Sep 17 00:00:00 2001 From: "Sven M. Hallberg" <pesco@khjk.org> Date: Thu, 29 Oct 2015 13:11:32 +0100 Subject: [PATCH] call h_arena_free when resizing in h_carray_append --- src/datastructures.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/datastructures.c b/src/datastructures.c index 0feeb217..af8477be 100644 --- a/src/datastructures.c +++ b/src/datastructures.c @@ -25,11 +25,12 @@ HCountedArray *h_carray_new(HArena * arena) { void h_carray_append(HCountedArray *array, void* item) { 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++) elements[i] = array->elements[i]; for (size_t i = array->used; i < array->capacity; i++) elements[i] = 0; + h_arena_free(array->arena, array->elements); array->elements = elements; } array->elements[array->used++] = item; -- GitLab