dynarray: Add pa_dynarray_remove_by_index()

Also, remove the talk about "fast" variants of functions that remove
entries from an array. Currently there's no need for order-preserving
functions, so all functions are "fast".
This commit is contained in:
Tanu Kaskinen 2015-01-07 16:56:48 +02:00 committed by David Henningsson
parent e5cf7e4a07
commit 9efe77c8e5
2 changed files with 24 additions and 6 deletions

View file

@ -86,6 +86,24 @@ void *pa_dynarray_last(pa_dynarray *array) {
return array->data[array->n_entries - 1];
}
int pa_dynarray_remove_by_index(pa_dynarray *array, unsigned i) {
void *entry;
pa_assert(array);
if (i >= array->n_entries)
return -PA_ERR_NOENTITY;
entry = array->data[i];
array->data[i] = array->data[array->n_entries - 1];
array->n_entries--;
if (array->free_cb)
array->free_cb(entry);
return 0;
}
void *pa_dynarray_steal_last(pa_dynarray *array) {
pa_assert(array);