Home | History | Annotate | Download | only in ltrace

Lines Matching refs:vec

27 slot(struct vect *vec, size_t i)
29 return ((unsigned char *)vec->data) + vec->elt_size * i;
33 cslot(const struct vect *vec, size_t i)
35 return ((const unsigned char *)vec->data) + vec->elt_size * i;
39 vect_init(struct vect *vec, size_t elt_size)
41 *vec = (struct vect){ NULL, 0, 0, elt_size };
88 vect_reserve(struct vect *vec, size_t count)
90 if (count > vec->allocated) {
91 size_t na = vec->allocated != 0 ? 2 * vec->allocated : 4;
94 void *n = realloc(vec->data, na * vec->elt_size);
97 vec->data = n;
98 vec->allocated = na;
100 assert(count <= vec->allocated);
105 vect_size(const struct vect *vec)
107 return vec->size;
111 vect_empty(const struct vect *vec)
113 return vec->size == 0;
117 vect_reserve_additional(struct vect *vec, size_t count)
119 return vect_reserve(vec, vect_size(vec) + count);
123 vect_pushback(struct vect *vec, void *eltp)
125 if (vect_reserve_additional(vec, 1) < 0)
127 memcpy(slot(vec, vec->size++), eltp, vec->elt_size);
132 vect_erase(struct vect *vec, size_t start, size_t end,
135 assert(start < vect_size(vec) || start == 0);
136 assert(end <= vect_size(vec));
142 dtor(slot(vec, i), data);
146 memmove(slot(vec, start), slot(vec, end),
147 slot(vec, vec->size) - slot(vec, end));
148 vec->size -= end - start;
152 vect_popback(struct vect *vec,
155 assert(vect_size(vec) > 0);
156 vect_erase(vec, vect_size(vec)-1, vect_size(vec), dtor, data);
160 vect_destroy(struct vect *vec, void (*dtor)(void *emt, void *data), void *data)
162 if (vec == NULL)
165 vect_erase(vec, 0, vect_size(vec), dtor, data);
166 assert(vect_size(vec) == 0);
167 free(vec->data);
171 vect_each(struct vect *vec, void *start_after,
175 : ((start_after - vec->data) / vec->elt_size) + 1;
177 for (; i < vec->size; ++i) {
178 void *slt = slot(vec, i);
193 vect_qsort(struct vect *vec, int (*compar)(const void *, const void *))
195 qsort(vec->data, vec->size, vec->elt_size, compar);
199 vect_each_cst(const struct vect *vec, const void *start_after,
202 return vect_each((struct vect *)vec, (void *)start_after,