--- libelwix/src/vars.c 2013/08/22 15:21:25 1.5 +++ libelwix/src/vars.c 2013/11/14 13:58:12 1.5.4.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: vars.c,v 1.5 2013/08/22 15:21:25 misho Exp $ +* $Id: vars.c,v 1.5.4.1 2013/11/14 13:58:12 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -409,11 +409,23 @@ ait_clrVars(array_t * __restrict vars) void ait_freeVars(array_t ** __restrict vars) { + register int i; + ait_val_t *v; + if (!vars || !*vars) return; - ait_clrVars(*vars); - array_Free(*vars); + for (i = 0; i < array_Size(*vars); i++) + if ((v = array(*vars, i, ait_val_t*))) { + AIT_FREE_VAL(v); + /* free memory if isn't zero copy */ + if (!AIT_IN(v) && (*vars)->arr_data[i]) { + e_free((*vars)->arr_data[i]); + (*vars)->arr_data[i] = NULL; + } + } + (*vars)->arr_last = -1; + array_Destroy(vars); }