--- libelwix/src/array.c 2019/01/22 16:18:47 1.8 +++ libelwix/src/array.c 2019/01/23 18:22:41 1.9 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: array.c,v 1.8 2019/01/22 16:18:47 misho Exp $ +* $Id: array.c,v 1.9 2019/01/23 18:22:41 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -68,7 +68,7 @@ array_Init(int numItems) e_free(arr); return NULL; } else - array_Zero(arr); + memset(arr->arr_data, 0, array_Size(arr) * sizeof(intptr_t)); return arr; } @@ -96,7 +96,7 @@ array_Init2(array_t * __restrict arr, int numItems) e_free(arr); return NULL; } else - array_Zero(arr); + memset(arr->arr_data, 0, array_Size(arr) * sizeof(intptr_t)); return arr; } @@ -175,12 +175,10 @@ array_Free(array_t * __restrict arr) return; for (i = 0; i < array_Size(arr); i++) - if (arr->arr_data[i]) { + if (arr->arr_data[i]) e_free(arr->arr_data[i]); - arr->arr_data[i] = NULL; - } - arr->arr_last = -1; + array_Zero(arr); } /* @@ -202,10 +200,26 @@ array_Destroy(array_t ** __restrict parr) } /* + * array_Destroy2() - Free data in dynamic array + * + * @parr = Array + * return: none + */ +void +array_Destroy2(array_t * __restrict arr) +{ + if (!arr) + return; + + if (arr->arr_data) + e_free(arr->arr_data); + memset(arr, 0, sizeof(array_t)); +} +/* * array_Reset() - Reset array to initial state * * @parr = Array - * @purge = Purge data, if <>0 then will be free entire data memory + * @purge = Purge all data, if <>0 then will be free entire data memory * return: none */ void @@ -221,7 +235,6 @@ array_Reset(array_t * __restrict arr, int purge) } array_Zero(arr); - arr->arr_last = -1; } /*