--- libaitio/inc/aitio.h 2011/06/07 11:49:39 1.10 +++ libaitio/inc/aitio.h 2011/08/25 13:50:16 1.10.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitio.h,v 1.10 2011/06/07 11:49:39 misho Exp $ +* $Id: aitio.h,v 1.10.2.1 2011/08/25 13:50:16 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -233,15 +233,15 @@ inline void io_arrayDestroy(array_t ** __restrict parr inline void io_arrayFree(array_t * __restrict arr); /* * io_arrayFrom() - Create and fill array from array with pointers - * @argv = Array with pointers + * @pargv = Array with pointers * @argc = Number of Items, if 0 walk through argv and stop when reach NULL item - * return: NULL error, != NULL allocated memory for array + * return: NULL error, != NULL allocated new array */ -inline array_t *io_arrayFrom(const char **argv, int argc); +inline array_t *io_arrayFrom(const char *** __restrict pargv, int argc); /* * io_arrayTo() - Create and fill array with pointers from dynamic array * @arr = Array - * return: NULL error, != NULL allocated memory for array + * return: NULL error, != NULL allocated memory for array, NULL terminated */ inline char **io_arrayTo(array_t * __restrict arr); /* @@ -280,8 +280,10 @@ int io_arrayVacuum(array_t * __restrict arr, int fromW assert(_arr && _arr->arr_num > _d); \ *(_arr->arr_data + _d) = (void*) _ptr; \ } while (0) -#define io_arrayDel(_arr, _d) do { \ +#define io_arrayDel(_arr, _d, _fri) do { \ assert(_arr && _arr->arr_num > _d); \ + if (_fri) \ + free(*(_arr->arr_data + _d)); \ *(_arr->arr_data + _d) = NULL; \ } while (0) @@ -295,7 +297,7 @@ inline int io_arrayPush(array_t * __restrict arr, void /* * io_arrayPop() - Pop element from dynamic array like stack manner, last used position * @arr = Array - * @data = Element, if set NULL return only first empty position + * @data = Element, if set NULL return only last used position * @delAfter = Delete after Pop element, !=0 delete element from array after return data * return: -1 not found used position, array is empty!, >-1 return element position */