From 5a12d1e372fdd2680233a18dc7d97a3c0b523361 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Tue, 25 Feb 2014 17:03:48 +0200 Subject: [PATCH] Check if array destructor is NULL --- src/array.c | 7 ++++--- src/array.h | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/array.c b/src/array.c index cc23802bf..83863d1df 100644 --- a/src/array.c +++ b/src/array.c @@ -27,9 +27,10 @@ void array_alloc(struct array **a, array_dtor dtor) void array_free(struct array *array) { - int i=0; - for (i=0; iindex; i++){ - array->dtor(array->data[i]); + if (array->dtor != NULL) { + for (int i=0; iindex; i++){ + array->dtor(array->data[i]); + } } xfree(array->data); xfree(array); diff --git a/src/array.h b/src/array.h index 11a01b18a..dfaf4a6de 100644 --- a/src/array.h +++ b/src/array.h @@ -5,6 +5,7 @@ #ifndef __ARRAY_H__ #define __ARRAY_H__ struct array; +typedef struct array array_t; typedef void (*array_dtor)(void*); typedef int (*array_comp)(const void*, const void*); void array_alloc(struct array **array, array_dtor dtor);