summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <sandmann@daimi.au.dk>2009-04-17 19:24:19 -0400
committerSøren Sandmann Pedersen <sandmann@daimi.au.dk>2009-04-17 19:25:21 -0400
commit64ddf6f684492152bc78269dca51725c0e285b86 (patch)
treec8d07871d52819abcc4d86ccfcfdc4f32b9ce55f /array.c
parentfabe0baca982bbd124b60d6bc45ecb7e0fb15710 (diff)
Use array_append_undefined() for generic arrays
Diffstat (limited to 'array.c')
-rw-r--r--array.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/array.c b/array.c
index fce0794..5f9f800 100644
--- a/array.c
+++ b/array.c
@@ -180,19 +180,13 @@ nul_ptr_t
nul_array_append (nul_ptr_t arr, nul_ptr_t element)
{
array_t *array = get_array (arr, &arr_t_magic);
- char *data;
-
- array = realloc_array (array, array->n_elements + 1);
-
- data = (char *)array->data;
-
- data += array->n_elements++ * array->element_size;
- memcpy (data, element, array->element_size);
+ char *tail;
- data += array->element_size;
- memset (data, 0, array->element_size);
+ array = array_append_undefined (array, 1, (void **)&tail);
+
+ memcpy (tail, element, array->element_size);
- return arr;
+ return array->data;
}
void