From 37c687c229f89202e5625bc3d3f9b1c85cb94b51 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 4 Nov 2008 21:29:33 +0000 Subject: array_delete_iterate implemented.. --- src/data/array.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/data/array.c') diff --git a/src/data/array.c b/src/data/array.c index 6a2b1fa..553d6f5 100644 --- a/src/data/array.c +++ b/src/data/array.c @@ -83,6 +83,23 @@ array_delete(Array *p_array) { free(p_array); } +void +array_delete_iterate(Array *p_array, void (*func)(void *)) { + if (!p_array) + return; + + array_iterate(p_array, func); + + if (p_array->i_size) + for (int i = p_array->i_size - 1; i >= 0; --i) + arrayelement_delete(p_array->pp_ae[i]); + + if (p_array->pp_ae) + free(p_array->pp_ae); + + free(p_array); +} + void array_set(Array *p_array, int i_index, void *p_val) { if (p_array->i_size > i_index) { -- cgit v1.2.3