--- libaitio/src/Attic/vars.c 2012/05/14 16:16:03 1.7 +++ libaitio/src/Attic/vars.c 2012/05/18 09:19:53 1.7.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: vars.c,v 1.7 2012/05/14 16:16:03 misho Exp $ +* $Id: vars.c,v 1.7.2.1 2012/05/18 09:19:53 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -477,7 +477,7 @@ io_allocVars(int varnum) register int i; ait_val_t *v; - if (!varnum || !(arr = io_arrayInit(varnum))) + if (!(arr = io_arrayInit(varnum))) return NULL; for (i = 0; i < io_arraySize(arr); i++) { @@ -489,6 +489,31 @@ io_allocVars(int varnum) } return arr; +} + +/* + * io_getVars() - Get ait_val_t element from array and if not exists allocate it + * + * @vars = Variable array + * @n = index of variable into array + * return: NULL error or !=NULL ait_val_t element + */ +inline ait_val_t * +io_getVars(array_t * __restrict vars, int n) +{ + ait_val_t *v; + + if (!vars) + return NULL; + + if (n >= io_arraySize(vars) && io_arrayGrow(vars, n + 1, 0)) + return NULL; + if ((v = io_allocVar())) + return NULL; + else + io_arraySet(vars, n, v); + + return v; } /*