From c6326009faf8f30e74e177b25f5b34c89520ee8c Mon Sep 17 00:00:00 2001 From: Riley Beckett Date: Sat, 25 Oct 2025 00:53:54 -0400 Subject: fix segfault better --- array.c | 18 +----------------- array.h | 7 +++---- 2 files changed, 4 insertions(+), 21 deletions(-) diff --git a/array.c b/array.c index 88ff5a0..86a5327 100644 --- a/array.c +++ b/array.c @@ -27,22 +27,6 @@ array_info* array_new_(size_t item_size, size_t size) { return info; } -void* array_add_(void* array, size_t item_size) { - array_info* info = NULL; - if (!array) { - info = array_new_(item_size, 0); - } - else { - info = ((array_info*)array) - 1; - } - if (info->size == info->capacity) { - info->capacity <<= 1; - info = realloc(info, sizeof(array_info) + (info->capacity * item_size)); - } - info->size++; - return info->array; -} - void* array_resize_(void* array, size_t item_size, size_t size) { array_info* info = NULL; if (!array) { @@ -51,7 +35,7 @@ void* array_resize_(void* array, size_t item_size, size_t size) { else { info = ((array_info*)array) - 1; } - if (size == -1) { + if (size == -1) { info->size++; } else { diff --git a/array.h b/array.h index c035fa6..6ea74d7 100644 --- a/array.h +++ b/array.h @@ -12,7 +12,6 @@ typedef struct { array_info* array_new_(size_t item_size, size_t size); void array_print(void* array); void array_pop(void* array); -void* array_add_(void* array, size_t item_size); void* array_resize_(void* array, size_t item_size, size_t size); #define CONCAT_INNER(a, b) a ## b @@ -66,10 +65,10 @@ void* array_resize_(void* array, size_t item_size, size_t size); (array) = __temp; \ } while (0) -#define array_add(array, value) do { \ +#define array_add(array, value) do { \ void* __temp = array_resize_((array), sizeof(*(array)), -1); \ - (array) = __temp; \ - (array)[array_size((array)) - 1] = value; \ + (array) = __temp; \ + (array)[array_size((array)) - 1] = value; \ } while (0) #define array_last(array) (array)[array_size(array) - 1] -- cgit v1.2.3