--- libaitio/src/Attic/sarray.c 2011/08/29 12:00:57 1.4 +++ libaitio/src/Attic/sarray.c 2011/08/31 12:58:27 1.4.2.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: sarray.c,v 1.4 2011/08/29 12:00:57 misho Exp $ +* $Id: sarray.c,v 1.4.2.2 2011/08/31 12:58:27 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -90,7 +90,6 @@ io_sarrDestroy(sarr_t ** __restrict parr) { register int i; - assert(parr && *parr); if (!parr || !*parr) return; @@ -104,6 +103,28 @@ io_sarrDestroy(sarr_t ** __restrict parr) free((*parr)->sarr_data); free(*parr); *parr = NULL; +} + +/* + * io_sarrCopy() Copy source split array to destination split array + * @dest = Destination split array, after use free with io_sarrDestroy() + * @src = Source split array + * return: -1 error; >0 count of destination split array + */ +int +io_sarrCopy(sarr_t ** __restrict dest, sarr_t * __restrict src) +{ + assert(dest); + assert(src); + if (!dest || !src) + return -1; + + *dest = io_sarrInit(io_sarrSize(src), io_sarrSeg(src)); + if (!*dest) + return -1; + + memcpy((*dest)->sarr_data, src->sarr_data, (*dest)->sarr_siz * sizeof(sarr_seg_t)); + return io_sarrSize(*dest); } /*