summaryrefslogtreecommitdiffstats
path: root/polyp/dynarray.c
diff options
context:
space:
mode:
Diffstat (limited to 'polyp/dynarray.c')
-rw-r--r--polyp/dynarray.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/polyp/dynarray.c b/polyp/dynarray.c
index eb360b80..0e406ea1 100644
--- a/polyp/dynarray.c
+++ b/polyp/dynarray.c
@@ -30,6 +30,9 @@
#include "dynarray.h"
#include "xmalloc.h"
+/* If the array becomes to small, increase its size by 100 entries */
+#define INCREASE_BY 100
+
struct pa_dynarray {
void **data;
unsigned n_allocated, n_entries;
@@ -66,7 +69,7 @@ void pa_dynarray_put(struct pa_dynarray*a, unsigned i, void *p) {
if (!p)
return;
- n = i+100;
+ n = i+INCREASE_BY;
a->data = pa_xrealloc(a->data, sizeof(void*)*n);
memset(a->data+a->n_allocated, 0, sizeof(void*)*(n-a->n_allocated));
a->n_allocated = n;
@@ -88,6 +91,7 @@ void *pa_dynarray_get(struct pa_dynarray*a, unsigned i) {
assert(a);
if (i >= a->n_allocated)
return NULL;
+
assert(a->data);
return a->data[i];
}