X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/126e4cf89f5ccfe393e60a930c88ab513eeee085..bcaba0b1b43d6a1b32aadfa98860f40b2c93e136:/src/pulsecore/dynarray.c?ds=sidebyside diff --git a/src/pulsecore/dynarray.c b/src/pulsecore/dynarray.c index a1fcd8a3..69d835af 100644 --- a/src/pulsecore/dynarray.c +++ b/src/pulsecore/dynarray.c @@ -1,7 +1,7 @@ /*** This file is part of PulseAudio. - Copyright 2004-2006 Lennart Poettering + Copyright 2004-2008 Lennart Poettering PulseAudio is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as @@ -31,8 +31,8 @@ #include "dynarray.h" -/* If the array becomes to small, increase its size by 100 entries */ -#define INCREASE_BY 100 +/* If the array becomes to small, increase its size by 25 entries */ +#define INCREASE_BY 25 struct pa_dynarray { void **data; @@ -41,21 +41,23 @@ struct pa_dynarray { pa_dynarray* pa_dynarray_new(void) { pa_dynarray *a; + a = pa_xnew(pa_dynarray, 1); a->data = NULL; a->n_entries = 0; a->n_allocated = 0; + return a; } -void pa_dynarray_free(pa_dynarray* a, void (*func)(void *p, void *userdata), void *userdata) { +void pa_dynarray_free(pa_dynarray* a, pa_free2_cb_t free_func, void *userdata) { unsigned i; pa_assert(a); - if (func) + if (free_func) for (i = 0; i < a->n_entries; i++) if (a->data[i]) - func(a->data[i], userdata); + free_func(a->data[i], userdata); pa_xfree(a->data); pa_xfree(a); @@ -89,6 +91,7 @@ unsigned pa_dynarray_append(pa_dynarray*a, void *p) { i = a->n_entries; pa_dynarray_put(a, i, p); + return i; }