--- libelwix/inc/elwix/aarray.h 2019/01/22 16:18:46 1.9 +++ libelwix/inc/elwix/aarray.h 2019/01/23 17:40:37 1.9.4.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aarray.h,v 1.9 2019/01/22 16:18:46 misho Exp $ +* $Id: aarray.h,v 1.9.4.2 2019/01/23 17:40:37 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -55,8 +55,8 @@ typedef struct _tagArray { #define array_Size(_arr) ((_arr) ? (_arr)->arr_num : 0) #define array_Last(_arr) (array_Size((_arr)) ? (_arr)->arr_last : -1) -#define array_Zero(_arr) (assert((_arr)), memset((_arr)->arr_data, 0, \ - array_Size((_arr)) * sizeof(intptr_t))) +#define array_Zero(_arr) (assert((_arr)), (_arr)->arr_last = -1, \ + memset((_arr)->arr_data, 0, array_Size((_arr)) * sizeof(intptr_t))) #define array_Ptr(_arr, _d) ((_arr) ? (_arr)->arr_data[_d] : NULL) #define array_Get2(_arr, _d) (assert((_arr) && (_arr)->arr_num > _d), ((_arr)->arr_data + _d)) @@ -96,6 +96,13 @@ array_t *array_Init2(array_t * __restrict arr, int num */ void array_Destroy(array_t ** __restrict parr); /* + * array_Destroy2() - Free data in dynamic array + * + * @parr = Array + * return: none + */ +void array_Destroy2(array_t * __restrict arr); +/* * array_Free() - Free all data in dynamic array items * (WARNING! If assign static array dont use this!!!) * @@ -107,7 +114,7 @@ void array_Free(array_t * __restrict arr); * 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 array_Reset(array_t * __restrict arr, int purge);