--- libaitio/src/Attic/vars.c 2011/11/03 14:56:48 1.2.2.3 +++ libaitio/src/Attic/vars.c 2011/12/13 10:40:05 1.3.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: vars.c,v 1.2.2.3 2011/11/03 14:56:48 misho Exp $ +* $Id: vars.c,v 1.3.2.1 2011/12/13 10:40:05 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -429,7 +429,7 @@ io_map2vars(u_char *buf, int buflen, int vnum, int zcp * return: =NULL error or !=NULL allocated array */ inline array_t * -io_allocVars(u_int varnum) +io_allocVars(int varnum) { array_t *arr; register int i; @@ -456,13 +456,16 @@ io_allocVars(u_int varnum) /* * io_clrVars() Clear ait_val_t elements from array * @vars = Variable array - * return: none + * return: -1 error or size of array */ inline int io_clrVars(array_t * __restrict vars) { register int i; + if (!vars) + return -1; + for (i = 0; i < io_arraySize(vars); i++) if (io_arrayGet(vars, i)) AIT_FREE_VAL(io_array(vars, i, ait_val_t*)); @@ -484,4 +487,39 @@ io_freeVars(array_t ** __restrict vars) io_clrVars(*vars); io_arrayFree(*vars); io_arrayDestroy(vars); +} + +/* + * io_allocVar() Allocate memory for variable + * return: NULL error or new variable, after use free variable with io_freeVar() + */ +inline ait_val_t * +io_allocVar(void) +{ + ait_val_t *v = NULL; + + v = malloc(sizeof(ait_val_t)); + if (!v) { + LOGERR; + return NULL; + } else + memset(v, 0, sizeof(ait_val_t)); + v->val_type = empty; + + return v; +} + +/* + * io_freeVar() Free allocated memory for variable + * @val = Variable + * return: none + */ +inline void +io_freeVar(ait_val_t ** __restrict val) +{ + if (val && *val) { + AIT_FREE_VAL(*val); + free(*val); + *val = NULL; + } }