--- libaitio/src/Attic/vars.c 2012/05/18 13:37:48 1.7.2.4 +++ libaitio/src/Attic/vars.c 2012/05/18 13:58:38 1.7.2.6 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: vars.c,v 1.7.2.4 2012/05/18 13:37:48 misho Exp $ +* $Id: vars.c,v 1.7.2.6 2012/05/18 13:58:38 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -501,23 +501,26 @@ io_allocVars(int varnum) inline ait_val_t * io_getVars(array_t ** __restrict vars, int n) { + register int i; ait_val_t *v; if (!vars) return NULL; if (!*vars) { - if (!(*vars = io_arrayInit(n + 1))) + if (!(*vars = io_allocVars(n + 1))) return NULL; } else { - if (n >= io_arraySize(*vars)) { + if (n >= (i = io_arraySize(*vars))) { if (io_arrayGrow(*vars, n + 1, 0)) return NULL; - if ((v = io_allocVar())) - return NULL; - else - io_arraySet(*vars, n, v); - return v; + for (; i < io_arraySize(*vars); i++) + if (!io_arrayGet(*vars, i)) { + if (!(v = io_allocVar())) + return NULL; + else + io_arraySet(*vars, n, v); + } } }