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); |
} |
} |
|
|
/* |
/* |