mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
dynarray: Add PA_DYNARRAY_FOREACH
The PA_DYNARRAY_FOREACH macro requires that pa_dynarray_get() returns NULL if the index is out of bounds.
This commit is contained in:
parent
7d3879c07f
commit
360cb6550e
3 changed files with 8 additions and 4 deletions
|
|
@ -72,7 +72,9 @@ void pa_dynarray_append(pa_dynarray *array, void *p) {
|
||||||
|
|
||||||
void *pa_dynarray_get(pa_dynarray *array, unsigned i) {
|
void *pa_dynarray_get(pa_dynarray *array, unsigned i) {
|
||||||
pa_assert(array);
|
pa_assert(array);
|
||||||
pa_assert(i < array->n_entries);
|
|
||||||
|
if (i >= array->n_entries)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
return array->data[i];
|
return array->data[i];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,8 @@ pa_dynarray* pa_dynarray_new(pa_free_cb_t free_cb);
|
||||||
void pa_dynarray_free(pa_dynarray *array);
|
void pa_dynarray_free(pa_dynarray *array);
|
||||||
|
|
||||||
void pa_dynarray_append(pa_dynarray *array, void *p);
|
void pa_dynarray_append(pa_dynarray *array, void *p);
|
||||||
|
|
||||||
|
/* Returns the element at index i, or NULL if i is out of bounds. */
|
||||||
void *pa_dynarray_get(pa_dynarray *array, unsigned i);
|
void *pa_dynarray_get(pa_dynarray *array, unsigned i);
|
||||||
|
|
||||||
/* Returns the last element, or NULL if the array is empty. */
|
/* Returns the last element, or NULL if the array is empty. */
|
||||||
|
|
@ -61,4 +63,7 @@ void *pa_dynarray_steal_last(pa_dynarray *array);
|
||||||
|
|
||||||
unsigned pa_dynarray_size(pa_dynarray *array);
|
unsigned pa_dynarray_size(pa_dynarray *array);
|
||||||
|
|
||||||
|
#define PA_DYNARRAY_FOREACH(elem, array, idx) \
|
||||||
|
for ((idx) = 0; ((elem) = pa_dynarray_get(array, idx)); (idx)++)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,5 @@ const char *pa_tokenizer_get(pa_tokenizer *t, unsigned i) {
|
||||||
|
|
||||||
pa_assert(a);
|
pa_assert(a);
|
||||||
|
|
||||||
if (i >= pa_dynarray_size(a))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return pa_dynarray_get(a, i);
|
return pa_dynarray_get(a, i);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue