diff options
| author | Riley Beckett <rbeckettvt@gmail.com> | 2025-10-25 00:53:54 -0400 |
|---|---|---|
| committer | Riley Beckett <rbeckettvt@gmail.com> | 2025-10-25 00:58:56 -0400 |
| commit | c6326009faf8f30e74e177b25f5b34c89520ee8c (patch) | |
| tree | 21bbf676e6b370f0c63928ce1e2997cc1ecf39f2 | |
| parent | e9382e20ad82dc2c4fc962f4cf2c43b91db63423 (diff) | |
fix segfault better
| -rw-r--r-- | array.c | 18 | ||||
| -rw-r--r-- | array.h | 7 |
2 files changed, 4 insertions, 21 deletions
@@ -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 { @@ -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] |
