--- libelwix/src/array.c 2015/06/25 17:53:50 1.5 +++ libelwix/src/array.c 2019/01/21 11:56:39 1.5.36.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: array.c,v 1.5 2015/06/25 17:53:50 misho Exp $ +* $Id: array.c,v 1.5.36.1 2019/01/21 11:56:39 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004 - 2015 +Copyright 2004 - 2019 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -170,6 +170,30 @@ array_Destroy(array_t ** __restrict parr) e_free((*parr)->arr_data); e_free(*parr); *parr = NULL; +} + +/* + * array_Reset() - Reset array to initial state + * + * @parr = Array + * @purge = Purge data, if <>0 then will be free entire data memory + * return: none + */ +void +array_Reset(array_t * __restrict arr, int purge) +{ + if (!arr) + return; + + arr->arr_last = -1; + arr->arr_num = 0; + + if (purge && arr->arr_data) { + e_free(arr->arr_data); + arr->arr_data = e_calloc(array_Size(arr), sizeof(intptr_t)); + } + + array_Zero(arr); } /*