|
|
| version 1.4.2.1, 2011/08/31 12:29:32 | version 1.6, 2011/12/13 02:23:08 |
|---|---|
| Line 210 io_arrayGrow(array_t * __restrict arr, int newNumItems | Line 210 io_arrayGrow(array_t * __restrict arr, int newNumItems |
| int n = 0; | int n = 0; |
| register int i; | register int i; |
| assert(arr); | |
| if (!arr) | if (!arr) |
| return -1; | return -1; |
| Line 254 io_arrayVacuum(array_t * __restrict arr, int fromWhere | Line 253 io_arrayVacuum(array_t * __restrict arr, int fromWhere |
| register int i, j, num; | register int i, j, num; |
| int cx = 0; | int cx = 0; |
| assert(arr); | |
| if (!arr) | if (!arr) |
| return -1; | return -1; |
| else | else |
| Line 296 io_arrayVacuum(array_t * __restrict arr, int fromWhere | Line 294 io_arrayVacuum(array_t * __restrict arr, int fromWhere |
| } | } |
| /* | /* |
| * io_arrayElem() - Always GET/PUT element into dynamic array, if not enough elements grow array | |
| * @arr = Array | |
| * @n = Position | |
| * @data = Element, if set NULL GET element at position or !=NULL PUT element at position | |
| * return: -1 error or !=-1 return element at position | |
| */ | |
| inline void * | |
| io_arrayElem(array_t * __restrict arr, int n, void **data) | |
| { | |
| void *dat = NULL; | |
| if (!arr) | |
| return (void*) -1; | |
| if (n > io_arraySize(arr) && io_arrayGrow(arr, n + 1, 0)) | |
| return (void*) -1; | |
| dat = io_arrayGet(arr, n); | |
| if (data) | |
| io_arraySet(arr, n, *data); | |
| return dat; | |
| } | |
| /* | |
| * io_arrayPush() - Push element into dynamic array like stack manner, place at first empty position | * io_arrayPush() - Push element into dynamic array like stack manner, place at first empty position |
| * @arr = Array | * @arr = Array |
| * @data = Element, if set NULL return only first empty position | * @data = Element, if set NULL return only first empty position |
| Line 307 io_arrayPush(array_t * __restrict arr, void **data) | Line 330 io_arrayPush(array_t * __restrict arr, void **data) |
| register int i; | register int i; |
| int ret = -1; | int ret = -1; |
| assert(arr); | if (!arr) |
| return -1; | |
| for (i = 0; i < io_arraySize(arr); i++) | for (i = 0; i < io_arraySize(arr); i++) |
| if (!arr->arr_data[i]) { | if (!arr->arr_data[i]) { |
| Line 333 io_arrayPop(array_t * __restrict arr, void ** __restri | Line 357 io_arrayPop(array_t * __restrict arr, void ** __restri |
| register int i; | register int i; |
| int ret = -1; | int ret = -1; |
| assert(arr); | if (!arr) |
| return -1; | |
| for (i = io_arraySize(arr) - 1; i >= 0; i--) | for (i = io_arraySize(arr) - 1; i >= 0; i--) |
| if (arr->arr_data[i]) { | if (arr->arr_data[i]) { |
| Line 370 io_arrayConcat(array_t * __restrict dest, array_t * __ | Line 395 io_arrayConcat(array_t * __restrict dest, array_t * __ |
| memcpy(dest->arr_data + n, src->arr_data, io_arraySize(src) * sizeof(void*)); | memcpy(dest->arr_data + n, src->arr_data, io_arraySize(src) * sizeof(void*)); |
| return io_arraySize(dest); | return io_arraySize(dest); |
| } | |
| /* | |
| * io_arrayCopy() Copy source array to destination array | |
| * @dest = Destination array, after use free with io_arrayDestroy() | |
| * @src = Source array | |
| * return: -1 error; >0 count of destination array | |
| */ | |
| int | |
| io_arrayCopy(array_t ** __restrict dest, array_t * __restrict src) | |
| { | |
| assert(dest); | |
| assert(src); | |
| if (!dest || !src) | |
| return -1; | |
| *dest = io_arrayInit(io_arraySize(src)); | |
| if (!*dest) | |
| return -1; | |
| memcpy((*dest)->arr_data, src->arr_data, io_arraySize(*dest) * sizeof(void*)); | |
| return io_arraySize(*dest); | |
| } | } |
| /* | /* |