Lines Matching refs:item
27 struct vector_item *item;
47 v->item = malloc(sizeof(*(v->item)) * (v->alloc));
51 if (v->item == NULL) { free(v); return NULL; }
58 free(v->item);
60 v->item = NULL;
85 void *tmp = realloc(v->item, sizeof(*(v->item)) * 2 * v->alloc);
88 v->item = tmp;
96 if (v->item[i].key < key)
98 /* insert after item i */
99 memmove(&v->item[i + 2], &v->item[i + 1],
100 (v->size - i - 1) * sizeof(*(v->item)));
101 v->item[i + 1].key = key;
102 v->item[i + 1].call = call;
117 assert(tmp >= v->item && tmp < v->item + v->size);
118 memmove(tmp, tmp + 1, (v->size - (v->item - tmp) - 1) * sizeof(*(v->item)));
149 if (key < v->item[x].key) r = x - 1; else l = x + 1;
150 if (key == v->item[x].key) return &(v->item[x]);
169 if ((v->size<1) || (lo < v->item[0].key)) { *key = lo; return TRUE; }
174 if (v->item[l].key + 1 < v->item[l + 1].key) { /* found it! */
175 *key = v->item[l].key + 1;
181 assert(x - l <= v->item[x].key - v->item[l].key);
182 assert(r - x <= v->item[r].key - v->item[x].key);
183 if (x - l < v->item[x].key - v->item[l].key)
187 if (r - x < v->item[r].key - v->item[x].key)
195 if (v->item[v->size - 1].key < hi) {
196 *key = v->item[v->size - 1].key + 1;
208 return v->item[n].call;