120 int end_idx_exclusive)
124 out->
size = end_idx_exclusive - start_idx;
168 if (capacity <= za->
alloc)
171 while (za->
alloc < capacity) {
206 assert(idx < za->
size);
223 assert(idx < za->
size);
225 *((
void**) p) = &za->
data[idx*za->
el_sz];
231 assert(sz <= za->
size);
249 assert(buffer != NULL);
250 assert(buffer_bytes >= za->
el_sz * za->
size);
264 assert(idx < za->
size);
267 if (idx < za->size-1)
274 int ncopy = za->
size - idx - 1;
304 for (
int idx = 0; idx < za->
size; idx++) {
327 assert(idx <= za->
size);
331 int ncopy = za->
size - idx;
350 assert(idx < za->
size);
370 for (
int idx = 0; idx < za->
size; idx++)
408 for (
int idx = 0; idx < za->
size; idx++) {
435 assert(compar != NULL);
446 int zstrcmp(
const void * a_pp,
const void * b_pp);
458 for (
int i = 0; i < za->
size; i++) {
478 char *tmp = (
char*)calloc(1, dest->
el_sz);
static int zarray_index_of(const zarray_t *za, const void *p)
static int zarray_contains(const zarray_t *za, const void *p)
static void zarray_get_volatile(const zarray_t *za, int idx, void *p)
static void zarray_sort(zarray_t *za, int(*compar)(const void *, const void *))
static int zarray_remove_value(zarray_t *za, const void *p, int shuffle)
static int zarray_size(const zarray_t *za)
static void zarray_ensure_capacity(zarray_t *za, int capacity)
static void zarray_destroy(zarray_t *za)
static void zarray_set(zarray_t *za, int idx, const void *p, void *outp)
static void zarray_remove_index(zarray_t *za, int idx, int shuffle)
static zarray_t * zarray_create(size_t el_sz)
static zarray_t * zarray_copy(const zarray_t *za)
static size_t zarray_copy_data(const zarray_t *za, void *buffer, size_t buffer_bytes)
static void zarray_map(zarray_t *za, void(*f)(void *))
static zarray_t * zarray_copy_subset(const zarray_t *za, int start_idx, int end_idx_exclusive)
static void zarray_truncate(zarray_t *za, int sz)
static void zarray_get(const zarray_t *za, int idx, void *p)
void zarray_vmap(zarray_t *za, void(*f)())
static void zarray_clear(zarray_t *za)
static void zarray_add_all(zarray_t *dest, const zarray_t *source)
static void zarray_insert(zarray_t *za, int idx, const void *p)
int zstrcmp(const void *a_pp, const void *b_pp)
static int iceillog2(int v)
static void zarray_add(zarray_t *za, const void *p)