#include <stddef.h>
#include <string.h>
#include <stdlib.h>
Go to the source code of this file.
|
#define | UTARRAY_VERSION 1.9.6 |
|
#define | _UNUSED_ = {sizeof(int),NULL,NULL,NULL} |
|
#define | oom() system_exit(-1) |
|
#define | utarray_init(a, _icd) |
|
#define | utarray_done(a) |
|
#define | utarray_new(a, _icd) |
|
#define | utarray_free(a) |
|
#define | utarray_reserve(a, by) |
|
#define | utarray_push_back(a, p) |
|
#define | utarray_pop_back(a) |
|
#define | utarray_extend_back(a) |
|
#define | utarray_len(a) ((a)->i) |
|
#define | utarray_eltptr(a, j) (((j) < (a)->i) ? _utarray_eltptr(a,j) : NULL) |
|
#define | _utarray_eltptr(a, j) ((char*)((a)->d + ((a)->icd.sz*(j) ))) |
|
#define | utarray_insert(a, p, j) |
|
#define | utarray_inserta(a, w, j) |
|
#define | utarray_resize(dst, num) |
|
#define | utarray_concat(dst, src) |
|
#define | utarray_erase(a, pos, len) |
|
#define | utarray_renew(a, u) |
|
#define | utarray_clear(a) |
|
#define | utarray_sort(a, cmp) |
|
#define | utarray_find(a, v, cmp) bsearch((v),(a)->d,(a)->i,(a)->icd.sz,cmp) |
|
#define | utarray_front(a) (((a)->i) ? (_utarray_eltptr(a,0)) : NULL) |
|
#define | utarray_next(a, e) (((e)==NULL) ? utarray_front(a) : ((((a)->i) > (utarray_eltidx(a,e)+1)) ? _utarray_eltptr(a,utarray_eltidx(a,e)+1) : NULL)) |
|
#define | utarray_prev(a, e) (((e)==NULL) ? utarray_back(a) : ((utarray_eltidx(a,e) > 0) ? _utarray_eltptr(a,utarray_eltidx(a,e)-1) : NULL)) |
|
#define | utarray_back(a) (((a)->i) ? (_utarray_eltptr(a,(a)->i-1)) : NULL) |
|
#define | utarray_eltidx(a, e) (((char*)(e) >= (char*)((a)->d)) ? (((char*)(e) - (char*)((a)->d))/(a)->icd.sz) : -1) |
|
|
typedef void() | ctor_f(void *dst, const void *src) |
|
typedef void() | dtor_f(void *elt) |
|
typedef void() | init_f(void *elt) |
|
◆ _UNUSED_
static const UT_icd ut_ptr_icd _UNUSED_ = {sizeof(int),NULL,NULL,NULL} |
◆ _utarray_eltptr
#define _utarray_eltptr |
( |
|
a, |
|
|
|
j |
|
) |
| ((char*)((a)->d + ((a)->icd.sz*(j) ))) |
◆ oom
◆ utarray_back
#define utarray_back |
( |
|
a | ) |
(((a)->i) ? (_utarray_eltptr(a,(a)->i-1)) : NULL) |
◆ utarray_clear
#define utarray_clear |
( |
|
a | ) |
|
Value:do { \
if ((a)->i > 0) { \
if ((a)->icd.dtor) { \
size_t _ut_i; \
for(_ut_i=0; _ut_i < (a)->i; _ut_i++) { \
} \
} \
(a)->i = 0; \
} \
} while(0)
#define utarray_eltptr(a, j)
Definition at line 196 of file utarray.h.
◆ utarray_concat
#define utarray_concat |
( |
|
dst, |
|
|
|
src |
|
) |
| |
◆ utarray_done
#define utarray_done |
( |
|
a | ) |
|
Value:do { \
if ((a)->n) { \
if ((a)->icd.dtor) { \
size_t _ut_i; \
for(_ut_i=0; _ut_i < (a)->i; _ut_i++) { \
} \
} \
free((a)->d); \
} \
(a)->n=0; \
} while(0)
#define utarray_eltptr(a, j)
Definition at line 66 of file utarray.h.
◆ utarray_eltidx
#define utarray_eltidx |
( |
|
a, |
|
|
|
e |
|
) |
| (((char*)(e) >= (char*)((a)->d)) ? (((char*)(e) - (char*)((a)->d))/(a)->icd.sz) : -1) |
◆ utarray_eltptr
#define utarray_eltptr |
( |
|
a, |
|
|
|
j |
|
) |
| (((j) < (a)->i) ? _utarray_eltptr(a,j) : NULL) |
◆ utarray_erase
#define utarray_erase |
( |
|
a, |
|
|
|
pos, |
|
|
|
len |
|
) |
| |
Value:do { \
if ((a)->icd.dtor) { \
size_t _ut_i; \
for(_ut_i=0; _ut_i < len; _ut_i++) { \
} \
} \
if ((a)->i > (pos+len)) { \
(((a)->i)-(pos+len))*((a)->icd.sz)); \
} \
(a)->i -= (len); \
} while(0)
#define utarray_eltptr(a, j)
#define _utarray_eltptr(a, j)
Definition at line 177 of file utarray.h.
Referenced by param_reset().
◆ utarray_extend_back
#define utarray_extend_back |
( |
|
a | ) |
|
Value:do { \
utarray_reserve(a,1); \
(a)->i++; \
} while(0)
#define _utarray_eltptr(a, j)
Definition at line 107 of file utarray.h.
◆ utarray_find
#define utarray_find |
( |
|
a, |
|
|
|
v, |
|
|
|
cmp |
|
) |
| bsearch((v),(a)->d,(a)->i,(a)->icd.sz,cmp) |
◆ utarray_free
#define utarray_free |
( |
|
a | ) |
|
◆ utarray_front
◆ utarray_init
#define utarray_init |
( |
|
a, |
|
|
|
_icd |
|
) |
| |
Value:do { \
(a)->icd=*_icd; \
} while(0)
Definition at line 61 of file utarray.h.
◆ utarray_insert
#define utarray_insert |
( |
|
a, |
|
|
|
p, |
|
|
|
j |
|
) |
| |
Value:do { \
utarray_reserve(a,1); \
if (j > (a)->i) break; \
if ((j) < (a)->i) { \
((a)->i - (j))*((a)->icd.sz)); \
} \
(a)->i++; \
} while(0)
#define _utarray_eltptr(a, j)
Definition at line 119 of file utarray.h.
◆ utarray_inserta
#define utarray_inserta |
( |
|
a, |
|
|
|
w, |
|
|
|
j |
|
) |
| |
Value:do { \
if (j > (a)->i) break; \
if ((j) < (a)->i) { \
((a)->i - (j))*((a)->icd.sz)); \
} \
if ((a)->icd.copy) { \
size_t _ut_i; \
for(_ut_i=0;_ut_i<(w)->i;_ut_i++) { \
} \
} else { \
} \
} while(0)
#define utarray_reserve(a, by)
#define _utarray_eltptr(a, j)
Definition at line 131 of file utarray.h.
◆ utarray_len
#define utarray_len |
( |
|
a | ) |
((a)->i) |
◆ utarray_new
#define utarray_new |
( |
|
a, |
|
|
|
_icd |
|
) |
| |
◆ utarray_next
◆ utarray_pop_back
#define utarray_pop_back |
( |
|
a | ) |
|
Value:do { \
else { (a)->i--; } \
} while(0)
#define _utarray_eltptr(a, j)
Definition at line 102 of file utarray.h.
◆ utarray_prev
◆ utarray_push_back
#define utarray_push_back |
( |
|
a, |
|
|
|
p |
|
) |
| |
◆ utarray_renew
#define utarray_renew |
( |
|
a, |
|
|
|
u |
|
) |
| |
Value:do { \
} while(0)
#define utarray_new(a, _icd)
Definition at line 191 of file utarray.h.
◆ utarray_reserve
#define utarray_reserve |
( |
|
a, |
|
|
|
by |
|
) |
| |
Value:do { \
if (((a)->i+by) > ((a)->n)) { \
while(((a)->i+by) > ((a)->n)) { (a)->n = ((a)->n ? (2*(a)->n) : 8); } \
if ( ((a)->d=(
char*)realloc((a)->d, (a)->n*(a)->icd.sz)) == NULL)
oom(); \
} \
} while(0)
Definition at line 89 of file utarray.h.
◆ utarray_resize
#define utarray_resize |
( |
|
dst, |
|
|
|
num |
|
) |
| |
Value:do { \
size_t _ut_i; \
if (dst->i > (size_t)(num)) { \
if ((dst)->icd.dtor) { \
for(_ut_i=num; _ut_i < dst->i; _ut_i++) { \
} \
} \
} else if (dst->i < (size_t)(num)) { \
utarray_reserve(dst,num-dst->i); \
if ((dst)->icd.init) { \
for(_ut_i=dst->i; _ut_i < num; _ut_i++) { \
} \
} else { \
} \
} \
dst->i = num; \
} while(0)
#define utarray_eltptr(a, j)
#define _utarray_eltptr(a, j)
Definition at line 152 of file utarray.h.
◆ utarray_sort
#define utarray_sort |
( |
|
a, |
|
|
|
cmp |
|
) |
| |
◆ UTARRAY_VERSION
#define UTARRAY_VERSION 1.9.6 |
◆ ctor_f
typedef void() ctor_f(void *dst, const void *src) |
◆ dtor_f
typedef void() dtor_f(void *elt) |
◆ init_f
typedef void() init_f(void *elt) |
◆ utarray_str_cpy()
static void utarray_str_cpy |
( |
void * |
dst, |
|
|
const void * |
src |
|
) |
| |
|
static |
◆ utarray_str_dtor()
static void utarray_str_dtor |
( |
void * |
elt | ) |
|
|
static |
◆ _UNUSED_