diff options
| -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] |
