diff -r 97c53f7ef5e4 -r 28a8ccc442b0 src/array.c --- a/src/array.c Wed Nov 06 21:01:25 2019 +0100 +++ b/src/array.c Thu Nov 07 10:10:36 2019 +0100 @@ -70,7 +70,7 @@ } int ucx_array_util_set_a(UcxAllocator* alloc, void** array, size_t* capacity, - size_t elmsize, size_t index, ...) { + size_t elmsize, size_t index, void* data) { if(!alloc || !capacity || !array) { errno = EINVAL; @@ -104,16 +104,18 @@ char* dest = *array; dest += elmsize*index; - - va_list ap; - va_start(ap, index); - int elem = va_arg(ap, int); - memcpy(dest, &elem, elmsize); - va_end(ap); + memcpy(dest, data, elmsize); return 0; } +int ucx_array_util_setptr_a(UcxAllocator* alloc, void** array, size_t* capacity, + size_t index, void* data) { + + return ucx_array_util_set_a(alloc, array, capacity, sizeof(void*), + index, &data); +} + UcxArray* ucx_array_new(size_t capacity, size_t elemsize) { return ucx_array_new_a(capacity, elemsize, ucx_default_allocator()); } @@ -254,33 +256,6 @@ return 0; } -int ucx_array_appendv(UcxArray *array, ...) { - va_list ap; - va_start(ap, array); - int elem = va_arg(ap, int); - int ret = ucx_array_append_from(array, &elem, 1); - va_end(ap); - return ret; -} - -int ucx_array_prependv(UcxArray *array, ...) { - va_list ap; - va_start(ap, array); - int elem = va_arg(ap, int); - int ret = ucx_array_prepend_from(array, &elem, 1); - va_end(ap); - return ret; -} - -int ucx_array_setv(UcxArray *array, size_t index, ...) { - va_list ap; - va_start(ap, index); - int elem = va_arg(ap, int); - int ret = ucx_array_set_from(array, index, &elem, 1); - va_end(ap); - return ret; -} - int ucx_array_concat(UcxArray *array1, const UcxArray *array2) { if (array1->elemsize != array2->elemsize) @@ -486,3 +461,7 @@ } } } + +int ucx_array_grow(UcxArray* array, size_t count) { + return ucx_array_reserve(array, array->size+count); +}