Lines Matching full:v

58 #define kv_init(v) ((v).n = (v).m = 0, (v).a = 0)  argument
59 #define kv_destroy(v) free((v).a) argument
60 #define kv_A(v, i) ((v).a[(i)]) argument
61 #define kv_pop(v) ((v).a[--(v).n]) argument
62 #define kv_size(v) ((v).n) argument
63 #define kv_max(v) ((v).m) argument
65 #define kv_resize_safe(type, v, s, el) do { \ argument
66 type *_tp = (type*)realloc((v).a, sizeof(type) * (s)); \
70 (v).a = _tp; \
71 (v).m = (s); \
76 #define kv_grow_safe(type, v, el) do { \ argument
77 size_t _ts = ((v).m > 1 ? (v).m * kv_grow_factor : 2); \
78 type *_tp = (type*)realloc((v).a, sizeof(type) * _ts); \
82 (v).a = _tp; \
83 (v).m = _ts; \
93 #define kv_push_safe(type, v, x, el) do { \ argument
94 if ((v).n == (v).m) { \
95 kv_grow_safe(type, v, el); \
97 (v).a[(v).n++] = (x); \
100 #define kv_prepend_safe(type, v, x, el) do { \ argument
101 if ((v).n == (v).m) { \
102 kv_grow_safe(type, v, el); \
104 memmove((v).a + 1, (v).a, sizeof(type) * (v).n); \
105 (v).a[0] = (x); \
106 (v).n ++; \
116 #define kv_del(type, v, i) do { \ argument
117 if ((i) < (v).n) { \
118 memmove((v).a + (i), (v).a + ((i) + 1), sizeof(type) * ((v).n - (i) - 1)); \
119 (v).n --; \
128 #define kv_resize(type, v, s) ((v).m = (s), (v).a = (type*)realloc((v).a, sizeof(type) * (v).m)) argument
130 #define kv_grow(type, v) ((v).m = ((v).m > 1 ? (v).m * kv_grow_factor : 2), \ argument
131 (v).a = (type*)realloc((v).a, sizeof(type) * (v).m))
139 #define kv_push(type, v, x) do { \ argument
140 if ((v).n == (v).m) { \
141 kv_grow(type, v); \
143 (v).a[(v).n++] = (x); \
146 #define kv_prepend(type, v, x) do { \ argument
147 if ((v).n == (v).m) { \
148 kv_grow(type, v); \
150 memmove((v).a + 1, (v).a, sizeof(type) * (v).n); \
151 (v).a[0] = (x); \
152 (v).n ++; \