[td-98] add clone function for array
This commit is contained in:
parent
f843a22bb8
commit
1da0f92d84
|
@ -100,6 +100,12 @@ void taosArrayRemove(SArray* pArray, size_t index);
|
|||
*/
|
||||
void taosArrayCopy(SArray* pDst, SArray* pSrc);
|
||||
|
||||
/**
|
||||
* clone a new array
|
||||
* @param pSrc
|
||||
*/
|
||||
SArray* taosArrayClone(SArray* pSrc);
|
||||
|
||||
/**
|
||||
* destroy array list
|
||||
* @param pArray
|
||||
|
|
|
@ -160,6 +160,21 @@ void taosArrayCopy(SArray* pDst, SArray* pSrc) {
|
|||
pDst->size = pSrc->size;
|
||||
}
|
||||
|
||||
SArray* taosArrayClone(SArray* pSrc) {
|
||||
assert(pSrc != NULL);
|
||||
|
||||
if (pSrc->size == 0) { // empty array list
|
||||
return taosArrayInit(8, pSrc->elemSize);
|
||||
}
|
||||
|
||||
SArray* dst = taosArrayInit(pSrc->size, pSrc->elemSize);
|
||||
|
||||
memcpy(dst->pData, pSrc->pData, pSrc->elemSize * pSrc->size);
|
||||
dst->size = pSrc->size;
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
void taosArrayDestroy(SArray* pArray) {
|
||||
if (pArray == NULL) {
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue