From 1878419ab30f960612d503f1ed0a29c0047e6fdf Mon Sep 17 00:00:00 2001 From: Olaf Wintermann Date: Fri, 7 Apr 2023 11:42:24 +0200 Subject: [PATCH] update ucx (array list fix) --- ucx/array_list.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ucx/array_list.c b/ucx/array_list.c index fde5ecd..5c66d53 100644 --- a/ucx/array_list.c +++ b/ucx/array_list.c @@ -511,12 +511,6 @@ CxList *cxArrayListCreate( cx_array_list *list = cxCalloc(allocator, 1, sizeof(cx_array_list)); if (list == NULL) return NULL; - list->data = cxCalloc(allocator, initial_capacity, item_size); - if (list->data == NULL) { - cxFree(allocator, list); - return NULL; - } - list->base.cl = &cx_array_list_class; list->base.allocator = allocator; list->base.cmpfunc = comparator; @@ -525,9 +519,17 @@ CxList *cxArrayListCreate( if (item_size > 0) { list->base.itemsize = item_size; } else { + item_size = sizeof(void*); cxListStorePointers((CxList *) list); } + // allocate the array after the real item_size is known + list->data = cxCalloc(allocator, initial_capacity, item_size); + if (list->data == NULL) { + cxFree(allocator, list); + return NULL; + } + // configure the reallocator list->reallocator.realloc = cx_arl_realloc; list->reallocator.ptr1 = (void *) allocator; -- 2.43.5