fix:memory leak
This commit is contained in:
parent
24f8fa4e6b
commit
ed523c9c13
|
@ -244,6 +244,11 @@ void sclFreeParam(SScalarParam *param) {
|
||||||
taosHashCleanup(param->pHashFilter);
|
taosHashCleanup(param->pHashFilter);
|
||||||
param->pHashFilter = NULL;
|
param->pHashFilter = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (param->pHashFilterVar != NULL) {
|
||||||
|
taosHashCleanup(param->pHashFilterVar);
|
||||||
|
param->pHashFilterVar = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t sclCopyValueNodeValue(SValueNode *pNode, void **res) {
|
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))) {
|
if (taosHashPut(ctx->pRes, &node, POINTER_BYTES, param, sizeof(*param))) {
|
||||||
taosHashCleanup(param->pHashFilter);
|
taosHashCleanup(param->pHashFilter);
|
||||||
param->pHashFilter = NULL;
|
param->pHashFilter = NULL;
|
||||||
|
taosHashCleanup(param->pHashFilterVar);
|
||||||
|
param->pHashFilterVar = NULL;
|
||||||
sclError("taosHashPut nodeList failed, size:%d", (int32_t)sizeof(*param));
|
sclError("taosHashPut nodeList failed, size:%d", (int32_t)sizeof(*param));
|
||||||
return terrno;
|
return terrno;
|
||||||
}
|
}
|
||||||
|
@ -541,14 +548,15 @@ int32_t sclInitParamList(SScalarParam **pParams, SNodeList *pParamList, SScalarC
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 == *rowNum) {
|
if (0 == *rowNum) {
|
||||||
taosMemoryFreeClear(paramList);
|
sclFreeParamList(paramList, *paramNum);
|
||||||
|
paramList = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
*pParams = paramList;
|
*pParams = paramList;
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
|
|
||||||
_return:
|
_return:
|
||||||
taosMemoryFreeClear(paramList);
|
sclFreeParamList(paramList, *paramNum);
|
||||||
SCL_RET(code);
|
SCL_RET(code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2106,7 +2106,7 @@ TEST(columnTest, int_column_in_double_list) {
|
||||||
SNode *pLeft = NULL, *pRight = NULL, *listNode = NULL, *opNode = NULL;
|
SNode *pLeft = NULL, *pRight = NULL, *listNode = NULL, *opNode = NULL;
|
||||||
int32_t leftv[5] = {1, 2, 3, 4, 5};
|
int32_t leftv[5] = {1, 2, 3, 4, 5};
|
||||||
double rightv1 = 1.1, rightv2 = 2.2, rightv3 = 3.3;
|
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;
|
SSDataBlock *src = NULL;
|
||||||
int32_t rowNum = sizeof(leftv) / sizeof(leftv[0]);
|
int32_t rowNum = sizeof(leftv) / sizeof(leftv[0]);
|
||||||
int32_t code = TSDB_CODE_SUCCESS;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
|
|
Loading…
Reference in New Issue