fix mem problem
This commit is contained in:
parent
cbb4e83fc4
commit
2d6c9ec7de
|
@ -7586,7 +7586,7 @@ int32_t tDecodeSColCmprWrapperEx(SDecoder *pDecoder, SColCmprWrapper *pWrapper)
|
|||
if (tDecodeI32v(pDecoder, &pWrapper->nCols) < 0) return -1;
|
||||
if (tDecodeI32v(pDecoder, &pWrapper->version) < 0) return -1;
|
||||
|
||||
pWrapper->pColCmpr = (SColCmpr *)taosMemoryCalloc(1, pWrapper->nCols * sizeof(SColCmpr));
|
||||
pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr));
|
||||
if (pWrapper->pColCmpr == NULL) return -1;
|
||||
|
||||
for (int i = 0; i < pWrapper->nCols; i++) {
|
||||
|
|
|
@ -32,7 +32,7 @@ int meteDecodeColCmprEntry(SDecoder *pDecoder, SMetaEntry *pME) {
|
|||
if (tDecodeI32v(pDecoder, &pWrapper->nCols) < 0) return -1;
|
||||
if (tDecodeI32v(pDecoder, &pWrapper->version) < 0) return -1;
|
||||
|
||||
pWrapper->pColCmpr = (SColCmpr *)taosMemoryCalloc(1, pWrapper->nCols * sizeof(SColCmpr));
|
||||
pWrapper->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pWrapper->nCols * sizeof(SColCmpr));
|
||||
if (pWrapper->pColCmpr == NULL) return -1;
|
||||
|
||||
for (int i = 0; i < pWrapper->nCols; i++) {
|
||||
|
@ -45,6 +45,18 @@ END:
|
|||
taosMemoryFree(pWrapper->pColCmpr);
|
||||
return -1;
|
||||
}
|
||||
static FORCE_INLINE void metatInitDefaultSColCmprWrapper(SDecoder *pDecoder, SColCmprWrapper *pCmpr,
|
||||
SSchemaWrapper *pSchema) {
|
||||
pCmpr->nCols = pSchema->nCols;
|
||||
assert(!pCmpr->pColCmpr);
|
||||
pCmpr->pColCmpr = (SColCmpr *)tDecoderMalloc(pDecoder, pCmpr->nCols * sizeof(SColCmpr));
|
||||
for (int32_t i = 0; i < pCmpr->nCols; i++) {
|
||||
SColCmpr *pColCmpr = &pCmpr->pColCmpr[i];
|
||||
SSchema *pColSchema = &pSchema->pSchema[i];
|
||||
pColCmpr->id = pColSchema->colId;
|
||||
pColCmpr->alg = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int metaEncodeEntry(SEncoder *pCoder, const SMetaEntry *pME) {
|
||||
if (tStartEncode(pCoder) < 0) return -1;
|
||||
|
@ -144,9 +156,9 @@ int metaDecodeEntry(SDecoder *pCoder, SMetaEntry *pME) {
|
|||
TABLE_SET_COL_COMPRESSED(pME->flags);
|
||||
} else {
|
||||
if (pME->type == TSDB_SUPER_TABLE) {
|
||||
tInitDefaultSColCmprWrapper(&pME->colCmpr, &pME->stbEntry.schemaRow);
|
||||
metatInitDefaultSColCmprWrapper(pCoder, &pME->colCmpr, &pME->stbEntry.schemaRow);
|
||||
} else if (pME->type == TSDB_NORMAL_TABLE) {
|
||||
tInitDefaultSColCmprWrapper(&pME->colCmpr, &pME->ntbEntry.schemaRow);
|
||||
metatInitDefaultSColCmprWrapper(pCoder, &pME->colCmpr, &pME->ntbEntry.schemaRow);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -370,7 +370,6 @@ _query:
|
|||
if (sver == -1 || sver == me.stbEntry.schemaRow.version) {
|
||||
pSchema = tCloneSSchemaWrapper(&me.stbEntry.schemaRow);
|
||||
tDecoderClear(&dc);
|
||||
taosMemoryFree(me.colCmpr.pColCmpr);
|
||||
goto _exit;
|
||||
}
|
||||
} else if (me.type == TSDB_CHILD_TABLE) {
|
||||
|
@ -381,12 +380,10 @@ _query:
|
|||
if (sver == -1 || sver == me.ntbEntry.schemaRow.version) {
|
||||
pSchema = tCloneSSchemaWrapper(&me.ntbEntry.schemaRow);
|
||||
tDecoderClear(&dc);
|
||||
taosMemoryFree(me.colCmpr.pColCmpr);
|
||||
goto _exit;
|
||||
}
|
||||
}
|
||||
tDecoderClear(&dc);
|
||||
taosMemoryFree(me.colCmpr.pColCmpr);
|
||||
|
||||
// query from skm db
|
||||
if (tdbTbGet(pMeta->pSkmDb, &(SSkmDbKey){.uid = uid, .sver = sver}, sizeof(SSkmDbKey), &pData, &nData) < 0) {
|
||||
|
|
|
@ -2562,7 +2562,6 @@ int32_t metaGetColCmpr(SMeta *pMeta, tb_uid_t uid, SHashObj **ppColCmprObj) {
|
|||
return 0;
|
||||
}
|
||||
tDecoderClear(&dc);
|
||||
taosMemoryFree(e.colCmpr.pColCmpr);
|
||||
tdbFree(pData);
|
||||
metaULock(pMeta);
|
||||
|
||||
|
|
Loading…
Reference in New Issue