Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
}
}
+void
+vector_unset_value (vector v, void *val)
+{
+ size_t i;
+
+ for (i = 0; i < v->active; i++)
+ if (v->index[i] == val)
+ {
+ v->index[i] = NULL;
+ break;
+ }
+
+ if (i + 1 == v->active)
+ do
+ v->active--;
+ while (i && v->index[--i] == NULL);
+}
+
/* Count the number of not emplty slot. */
unsigned int
vector_count (vector v)
extern int vector_set (vector v, void *val);
extern int vector_set_index (vector v, unsigned int i, void *val);
extern void vector_unset (vector v, unsigned int i);
+extern void vector_unset_value (vector v, void *val);
+
extern unsigned int vector_count (vector v);
extern void vector_free (vector v);
extern vector vector_copy (vector v);