fix:memory leak

This commit is contained in:
wangmm0220 2024-12-18 14:51:22 +08:00
parent 24f8fa4e6b
commit ed523c9c13
2 changed files with 11 additions and 3 deletions

View File

@ -244,6 +244,11 @@ void sclFreeParam(SScalarParam *param) {
taosHashCleanup(param->pHashFilter);
param->pHashFilter = NULL;
}
if (param->pHashFilterVar != NULL) {
taosHashCleanup(param->pHashFilterVar);
param->pHashFilterVar = NULL;
}
}
int32_t sclCopyValueNodeValue(SValueNode *pNode, void **res) {
@ -409,6 +414,8 @@ int32_t sclInitParam(SNode *node, SScalarParam *param, SScalarCtx *ctx, int32_t
if (taosHashPut(ctx->pRes, &node, POINTER_BYTES, param, sizeof(*param))) {
taosHashCleanup(param->pHashFilter);
param->pHashFilter = NULL;
taosHashCleanup(param->pHashFilterVar);
param->pHashFilterVar = NULL;
sclError("taosHashPut nodeList failed, size:%d", (int32_t)sizeof(*param));
return terrno;
}
@ -541,14 +548,15 @@ int32_t sclInitParamList(SScalarParam **pParams, SNodeList *pParamList, SScalarC
}
if (0 == *rowNum) {
taosMemoryFreeClear(paramList);
sclFreeParamList(paramList, *paramNum);
paramList = NULL;
}
*pParams = paramList;
return TSDB_CODE_SUCCESS;
_return:
taosMemoryFreeClear(paramList);
sclFreeParamList(paramList, *paramNum);
SCL_RET(code);
}

View File

@ -2106,7 +2106,7 @@ TEST(columnTest, int_column_in_double_list) {
SNode *pLeft = NULL, *pRight = NULL, *listNode = NULL, *opNode = NULL;
int32_t leftv[5] = {1, 2, 3, 4, 5};
double rightv1 = 1.1, rightv2 = 2.2, rightv3 = 3.3;
bool eRes[5] = {true, true, true, false, false};
bool eRes[5] = {false, false, false, false, false};
SSDataBlock *src = NULL;
int32_t rowNum = sizeof(leftv) / sizeof(leftv[0]);
int32_t code = TSDB_CODE_SUCCESS;