Lines Matching refs:icd

64     UT_icd icd;  /* initializer, copy and destructor functions */
65 char *d; /* n slots of size icd->sz*/
70 (a)->icd = *(_icd); \
75 if ((a)->icd.dtor) { \
78 (a)->icd.dtor(utarray_eltptr(a,_ut_i)); \
103 utarray_tmp=(char*)realloc((a)->d, (a)->n*(a)->icd.sz); \
113 if ((a)->icd.copy) { (a)->icd.copy( _utarray_eltptr(a,(a)->i++), p); } \
114 else { memcpy(_utarray_eltptr(a,(a)->i++), p, (a)->icd.sz); }; \
118 if ((a)->icd.dtor) { (a)->icd.dtor( _utarray_eltptr(a,--((a)->i))); } \
124 if ((a)->icd.init) { (a)->icd.init(_utarray_eltptr(a,(a)->i)); } \
125 else { memset(_utarray_eltptr(a,(a)->i),0,(a)->icd.sz); } \
132 #define _utarray_eltptr(a,j) ((void*)((a)->d + ((a)->icd.sz * (j))))
139 ((a)->i - (j))*((a)->icd.sz)); \
141 if ((a)->icd.copy) { (a)->icd.copy( _utarray_eltptr(a,j), p); } \
142 else { memcpy(_utarray_eltptr(a,j), p, (a)->icd.sz); }; \
153 ((a)->i - (j))*((a)->icd.sz)); \
155 if ((a)->icd.copy) { \
158 (a)->icd.copy(_utarray_eltptr(a, (j) + _ut_i), _utarray_eltptr(w, _ut_i)); \
162 utarray_len(w)*((a)->icd.sz)); \
170 if ((dst)->icd.dtor) { \
172 (dst)->icd.dtor(_utarray_eltptr(dst, _ut_i)); \
177 if ((dst)->icd.init) { \
179 (dst)->icd.init(_utarray_eltptr(dst, _ut_i)); \
182 memset(_utarray_eltptr(dst, (dst)->i), 0, (dst)->icd.sz*((num) - (dst)->i)); \
193 if ((a)->icd.dtor) { \
196 (a)->icd.dtor(utarray_eltptr(a, (pos) + _ut_i)); \
201 ((a)->i - ((pos) + (len))) * (a)->icd.sz); \
213 if ((a)->icd.dtor) { \
216 (a)->icd.dtor(_utarray_eltptr(a, _ut_i)); \
224 qsort((a)->d, (a)->i, (a)->icd.sz, cmp); \
227 #define utarray_find(a,v,cmp) bsearch((v),(a)->d,(a)->i,(a)->icd.sz,cmp)
233 #define utarray_eltidx(a,e) (((char*)(e) - (a)->d) / (a)->icd.sz)
235 /* last we pre-define a few icd for common utarrays of ints and strings */