refactor: remove assert
This commit is contained in:
parent
c1ffbb5c1c
commit
670eec4db5
|
@ -20,7 +20,10 @@
|
||||||
// todo refactor API
|
// todo refactor API
|
||||||
|
|
||||||
SArray* taosArrayInit(size_t size, size_t elemSize) {
|
SArray* taosArrayInit(size_t size, size_t elemSize) {
|
||||||
assert(elemSize > 0);
|
if (elemSize == 0) {
|
||||||
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (size < TARRAY_MIN_SIZE) {
|
if (size < TARRAY_MIN_SIZE) {
|
||||||
size = TARRAY_MIN_SIZE;
|
size = TARRAY_MIN_SIZE;
|
||||||
|
@ -96,8 +99,6 @@ void* taosArrayAddBatch(SArray* pArray, const void* pData, int32_t nEles) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosArrayRemoveDuplicate(SArray* pArray, __compar_fn_t comparFn, void (*fp)(void*)) {
|
void taosArrayRemoveDuplicate(SArray* pArray, __compar_fn_t comparFn, void (*fp)(void*)) {
|
||||||
assert(pArray);
|
|
||||||
|
|
||||||
size_t size = pArray->size;
|
size_t size = pArray->size;
|
||||||
if (size <= 1) {
|
if (size <= 1) {
|
||||||
return;
|
return;
|
||||||
|
@ -136,8 +137,6 @@ void taosArrayRemoveDuplicate(SArray* pArray, __compar_fn_t comparFn, void (*fp)
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosArrayRemoveDuplicateP(SArray* pArray, __compar_fn_t comparFn, void (*fp)(void*)) {
|
void taosArrayRemoveDuplicateP(SArray* pArray, __compar_fn_t comparFn, void (*fp)(void*)) {
|
||||||
assert(pArray);
|
|
||||||
|
|
||||||
size_t size = pArray->size;
|
size_t size = pArray->size;
|
||||||
if (size <= 1) {
|
if (size <= 1) {
|
||||||
return;
|
return;
|
||||||
|
@ -195,11 +194,10 @@ void* taosArrayReserve(SArray* pArray, int32_t num) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void* taosArrayPop(SArray* pArray) {
|
void* taosArrayPop(SArray* pArray) {
|
||||||
assert(pArray != NULL);
|
|
||||||
|
|
||||||
if (pArray->size == 0) {
|
if (pArray->size == 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
pArray->size -= 1;
|
pArray->size -= 1;
|
||||||
return TARRAY_GET_ELEM(pArray, pArray->size);
|
return TARRAY_GET_ELEM(pArray, pArray->size);
|
||||||
}
|
}
|
||||||
|
@ -208,16 +206,21 @@ void* taosArrayGet(const SArray* pArray, size_t index) {
|
||||||
if (NULL == pArray) {
|
if (NULL == pArray) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
assert(index < pArray->size);
|
|
||||||
|
if (index >= pArray->size) {
|
||||||
|
uError("index is out of range, current:%"PRIzu" max:%d", index, pArray->capacity);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return TARRAY_GET_ELEM(pArray, index);
|
return TARRAY_GET_ELEM(pArray, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* taosArrayGetP(const SArray* pArray, size_t index) {
|
void* taosArrayGetP(const SArray* pArray, size_t index) {
|
||||||
assert(index < pArray->size);
|
void** p = taosArrayGet(pArray, index);
|
||||||
|
if (p == NULL) {
|
||||||
void* d = TARRAY_GET_ELEM(pArray, index);
|
return NULL;
|
||||||
|
}
|
||||||
return *(void**)d;
|
return *p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void* taosArrayGetLast(const SArray* pArray) { return TARRAY_GET_ELEM(pArray, pArray->size - 1); }
|
void* taosArrayGetLast(const SArray* pArray) { return TARRAY_GET_ELEM(pArray, pArray->size - 1); }
|
||||||
|
@ -296,9 +299,12 @@ void taosArrayRemove(SArray* pArray, size_t index) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SArray* taosArrayFromList(const void* src, size_t size, size_t elemSize) {
|
SArray* taosArrayFromList(const void* src, size_t size, size_t elemSize) {
|
||||||
assert(src != NULL && elemSize > 0);
|
if (elemSize <= 0) {
|
||||||
SArray* pDst = taosArrayInit(size, elemSize);
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
SArray* pDst = taosArrayInit(size, elemSize);
|
||||||
memcpy(pDst->pData, src, elemSize * size);
|
memcpy(pDst->pData, src, elemSize * size);
|
||||||
pDst->size = size;
|
pDst->size = size;
|
||||||
|
|
||||||
|
@ -306,8 +312,6 @@ SArray* taosArrayFromList(const void* src, size_t size, size_t elemSize) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SArray* taosArrayDup(const SArray* pSrc, __array_item_dup_fn_t fn) {
|
SArray* taosArrayDup(const SArray* pSrc, __array_item_dup_fn_t fn) {
|
||||||
assert(pSrc != NULL);
|
|
||||||
|
|
||||||
if (pSrc->size == 0) { // empty array list
|
if (pSrc->size == 0) { // empty array list
|
||||||
return taosArrayInit(8, pSrc->elemSize);
|
return taosArrayInit(8, pSrc->elemSize);
|
||||||
}
|
}
|
||||||
|
@ -399,14 +403,10 @@ void taosArrayDestroyEx(SArray* pArray, FDelete fp) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosArraySort(SArray* pArray, __compar_fn_t compar) {
|
void taosArraySort(SArray* pArray, __compar_fn_t compar) {
|
||||||
ASSERT(pArray != NULL && compar != NULL);
|
|
||||||
taosSort(pArray->pData, pArray->size, pArray->elemSize, compar);
|
taosSort(pArray->pData, pArray->size, pArray->elemSize, compar);
|
||||||
}
|
}
|
||||||
|
|
||||||
void* taosArraySearch(const SArray* pArray, const void* key, __compar_fn_t comparFn, int32_t flags) {
|
void* taosArraySearch(const SArray* pArray, const void* key, __compar_fn_t comparFn, int32_t flags) {
|
||||||
assert(pArray != NULL && comparFn != NULL);
|
|
||||||
assert(key != NULL);
|
|
||||||
|
|
||||||
return taosbsearch(key, pArray->pData, pArray->size, pArray->elemSize, comparFn, flags);
|
return taosbsearch(key, pArray->pData, pArray->size, pArray->elemSize, comparFn, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,11 @@ static void setPageNotInBuf(SPageInfo* pPageInfo) { pPageInfo->pData = NULL; }
|
||||||
static FORCE_INLINE size_t getAllocPageSize(int32_t pageSize) { return pageSize + POINTER_BYTES + sizeof(SFilePage); }
|
static FORCE_INLINE size_t getAllocPageSize(int32_t pageSize) { return pageSize + POINTER_BYTES + sizeof(SFilePage); }
|
||||||
|
|
||||||
static char* doFlushBufPage(SDiskbasedBuf* pBuf, SPageInfo* pg) {
|
static char* doFlushBufPage(SDiskbasedBuf* pBuf, SPageInfo* pg) {
|
||||||
ASSERT(!pg->used && pg->pData != NULL);
|
if (pg->pData == NULL || pg->used) {
|
||||||
|
uError("invalid params in paged buffer process when flushing buf to disk, %s", pBuf->id);
|
||||||
|
terrno = TSDB_CODE_INVALID_PARA;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
int32_t size = pBuf->pageSize;
|
int32_t size = pBuf->pageSize;
|
||||||
char* t = NULL;
|
char* t = NULL;
|
||||||
|
@ -333,7 +337,6 @@ int32_t createDiskbasedBuf(SDiskbasedBuf** pBuf, int32_t pagesize, int32_t inMem
|
||||||
pPBuf->pageSize = pagesize;
|
pPBuf->pageSize = pagesize;
|
||||||
pPBuf->numOfPages = 0; // all pages are in buffer in the first place
|
pPBuf->numOfPages = 0; // all pages are in buffer in the first place
|
||||||
pPBuf->totalBufSize = 0;
|
pPBuf->totalBufSize = 0;
|
||||||
pPBuf->inMemPages = inMemBufSize / pagesize; // maximum allowed pages, it is a soft limit.
|
|
||||||
pPBuf->allocateId = -1;
|
pPBuf->allocateId = -1;
|
||||||
pPBuf->pFile = NULL;
|
pPBuf->pFile = NULL;
|
||||||
pPBuf->id = strdup(id);
|
pPBuf->id = strdup(id);
|
||||||
|
@ -342,13 +345,22 @@ int32_t createDiskbasedBuf(SDiskbasedBuf** pBuf, int32_t pagesize, int32_t inMem
|
||||||
pPBuf->freePgList = tdListNew(POINTER_BYTES);
|
pPBuf->freePgList = tdListNew(POINTER_BYTES);
|
||||||
|
|
||||||
// at least more than 2 pages must be in memory
|
// at least more than 2 pages must be in memory
|
||||||
ASSERT(inMemBufSize >= pagesize * 2);
|
if (inMemBufSize < pagesize * 2) {
|
||||||
|
inMemBufSize = pagesize * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
pPBuf->inMemPages = inMemBufSize / pagesize; // maximum allowed pages, it is a soft limit.
|
||||||
pPBuf->lruList = tdListNew(POINTER_BYTES);
|
pPBuf->lruList = tdListNew(POINTER_BYTES);
|
||||||
|
if (pPBuf->lruList == NULL) {
|
||||||
|
goto _error;
|
||||||
|
}
|
||||||
|
|
||||||
// init id hash table
|
// init id hash table
|
||||||
_hash_fn_t fn = taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT);
|
_hash_fn_t fn = taosGetDefaultHashFunction(TSDB_DATA_TYPE_INT);
|
||||||
pPBuf->pIdList = taosArrayInit(4, POINTER_BYTES);
|
pPBuf->pIdList = taosArrayInit(4, POINTER_BYTES);
|
||||||
|
if (pPBuf->pIdList == NULL) {
|
||||||
|
goto _error;
|
||||||
|
}
|
||||||
|
|
||||||
pPBuf->assistBuf = taosMemoryMalloc(pPBuf->pageSize + 2); // EXTRA BYTES
|
pPBuf->assistBuf = taosMemoryMalloc(pPBuf->pageSize + 2); // EXTRA BYTES
|
||||||
if (pPBuf->assistBuf == NULL) {
|
if (pPBuf->assistBuf == NULL) {
|
||||||
|
@ -503,7 +515,12 @@ void releaseBufPageInfo(SDiskbasedBuf* pBuf, SPageInfo* pi) {
|
||||||
uDebug("page_releaseBufPageInfo pageId:%d, used:%d, offset:%" PRId64, pi->pageId, pi->used, pi->offset);
|
uDebug("page_releaseBufPageInfo pageId:%d, used:%d, offset:%" PRId64, pi->pageId, pi->used, pi->offset);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ASSERTS(pi->pData != NULL, "pi->pData is NULL")) {
|
if (pi == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pi->pData == NULL) {
|
||||||
|
uError("pi->pData (page data) is null");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -514,7 +531,6 @@ void releaseBufPageInfo(SDiskbasedBuf* pBuf, SPageInfo* pi) {
|
||||||
size_t getTotalBufSize(const SDiskbasedBuf* pBuf) { return (size_t)pBuf->totalBufSize; }
|
size_t getTotalBufSize(const SDiskbasedBuf* pBuf) { return (size_t)pBuf->totalBufSize; }
|
||||||
|
|
||||||
SArray* getDataBufPagesIdList(SDiskbasedBuf* pBuf) {
|
SArray* getDataBufPagesIdList(SDiskbasedBuf* pBuf) {
|
||||||
ASSERT(pBuf != NULL);
|
|
||||||
return pBuf->pIdList;
|
return pBuf->pIdList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -592,7 +608,6 @@ SPageInfo* getLastPageInfo(SArray* pList) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t getPageId(const SPageInfo* pPgInfo) {
|
int32_t getPageId(const SPageInfo* pPgInfo) {
|
||||||
ASSERT(pPgInfo != NULL);
|
|
||||||
return pPgInfo->pageId;
|
return pPgInfo->pageId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue