clean pulseaudio recipes
[scm/bb/meta-tizen.git] / recipes-multimedia / pulseaudio / pulseaudio_5.0 / 0057-dynarray-Add-PA_DYNARRAY_FOREACH.patch
1 From: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
2 Date: Thu, 19 Dec 2013 21:29:50 +0200
3 Subject: dynarray: Add PA_DYNARRAY_FOREACH
4
5 The PA_DYNARRAY_FOREACH macro requires that pa_dynarray_get() returns
6 NULL if the index is out of bounds.
7
8 Change-Id: If9db312516fbb079e8b67d94d35a44783ab3395a
9 Signed-off-by: Jaska Uimonen <jaska.uimonen@intel.com>
10 ---
11  src/pulsecore/dynarray.c  | 4 +++-
12  src/pulsecore/dynarray.h  | 5 +++++
13  src/pulsecore/tokenizer.c | 3 ---
14  3 files changed, 8 insertions(+), 4 deletions(-)
15
16 diff --git a/src/pulsecore/dynarray.c b/src/pulsecore/dynarray.c
17 index b65fb62..8dd8fab 100644
18 --- a/src/pulsecore/dynarray.c
19 +++ b/src/pulsecore/dynarray.c
20 @@ -74,7 +74,9 @@ void pa_dynarray_append(pa_dynarray *array, void *p) {
21  
22  void *pa_dynarray_get(pa_dynarray *array, unsigned i) {
23      pa_assert(array);
24 -    pa_assert(i < array->n_entries);
25 +
26 +    if (i >= array->n_entries)
27 +        return NULL;
28  
29      return array->data[i];
30  }
31 diff --git a/src/pulsecore/dynarray.h b/src/pulsecore/dynarray.h
32 index 078acec..65030f2 100644
33 --- a/src/pulsecore/dynarray.h
34 +++ b/src/pulsecore/dynarray.h
35 @@ -48,6 +48,8 @@ pa_dynarray* pa_dynarray_new(pa_free_cb_t free_cb);
36  void pa_dynarray_free(pa_dynarray *array);
37  
38  void pa_dynarray_append(pa_dynarray *array, void *p);
39 +
40 +/* Returns NULL if i is out of bounds. */
41  void *pa_dynarray_get(pa_dynarray *array, unsigned i);
42  
43  /* Returns the removed item, or NULL if the array is empty. */
44 @@ -56,4 +58,7 @@ void *pa_dynarray_steal_last(pa_dynarray *array);
45  unsigned pa_dynarray_size(pa_dynarray *array);
46  void * const *pa_dynarray_get_raw_array(pa_dynarray *array);
47  
48 +#define PA_DYNARRAY_FOREACH(elem, array, idx) \
49 +    for ((idx) = 0; ((elem) = pa_dynarray_get(array, idx)); (idx)++)
50 +
51  #endif
52 diff --git a/src/pulsecore/tokenizer.c b/src/pulsecore/tokenizer.c
53 index 4c610e8..d71a7da 100644
54 --- a/src/pulsecore/tokenizer.c
55 +++ b/src/pulsecore/tokenizer.c
56 @@ -80,8 +80,5 @@ const char *pa_tokenizer_get(pa_tokenizer *t, unsigned i) {
57  
58      pa_assert(a);
59  
60 -    if (i >= pa_dynarray_size(a))
61 -        return NULL;
62 -
63      return pa_dynarray_get(a, i);
64  }