diff options
author | Søren Sandmann Pedersen <sandmann@daimi.au.dk> | 2009-04-17 19:22:39 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <sandmann@daimi.au.dk> | 2009-04-17 19:22:39 -0400 |
commit | fabe0baca982bbd124b60d6bc45ecb7e0fb15710 (patch) | |
tree | d53b5e7b4d86ec3a139529b9b449ac9e2d723a16 | |
parent | ff336094ae0271b3f8b39309cdf5d3095fa846ed (diff) |
Use array_append_undefined() for pointer arrays
-rw-r--r-- | array.c | 18 |
1 files changed, 8 insertions, 10 deletions
@@ -64,7 +64,7 @@ static void nul_terminate (array_t *array) { char *end = (char *)array->data + array->n_elements * array->element_size; - + memset (end, 0, array->element_size); } @@ -143,7 +143,7 @@ array_append_undefined (array_t *array, int n_elements, void **tail) { - array = realloc_array (array, array->n_elements + n_elements * array->element_size); + array = realloc_array (array, array->n_elements + n_elements); array->n_elements += n_elements; @@ -244,15 +244,13 @@ void ** nul_ptr_array_append (void **arr, gpointer data) { array_t *array = get_array (arr, &parr_t_magic); + nul_ptr_t *tail; + + array = array_append_undefined (array, 1, (void **)&tail); + + *tail = data; - array = realloc_array (array, array->n_elements + 1); - - arr = (void **)array->data; - - arr[array->n_elements++] = data; - arr[array->n_elements] = NULL; - - return arr; + return (void **)array->data; } void |