Merge pull request #12312 from taosdata/fix/hz_mem_leak
fix: memory leak
This commit is contained in:
commit
24f8aebb7a
|
@ -113,7 +113,9 @@ int tdbBtreeOpen(int keyLen, int valLen, SPager *pPager, tdb_cmpr_fn_t kcmpr, SB
|
||||||
}
|
}
|
||||||
|
|
||||||
int tdbBtreeClose(SBTree *pBt) {
|
int tdbBtreeClose(SBTree *pBt) {
|
||||||
// TODO
|
if (pBt) {
|
||||||
|
tdbOsFree(pBt);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,10 @@ int tdbDbOpen(const char *fname, int keyLen, int valLen, tdb_cmpr_fn_t keyCmprFn
|
||||||
}
|
}
|
||||||
|
|
||||||
int tdbDbClose(TDB *pDb) {
|
int tdbDbClose(TDB *pDb) {
|
||||||
// TODO
|
if (pDb) {
|
||||||
|
tdbBtreeClose(pDb->pBt);
|
||||||
|
tdbOsFree(pDb);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ int tdbEnvOpen(const char *rootDir, int szPage, int pages, TENV **ppEnv) {
|
||||||
|
|
||||||
pEnv->nPgrHash = 8;
|
pEnv->nPgrHash = 8;
|
||||||
tsize = sizeof(SPager *) * pEnv->nPgrHash;
|
tsize = sizeof(SPager *) * pEnv->nPgrHash;
|
||||||
pEnv->pgrHash = tdbRealloc(pEnv->pgrHash, tsize);
|
pEnv->pgrHash = tdbOsMalloc(tsize);
|
||||||
if (pEnv->pgrHash == NULL) {
|
if (pEnv->pgrHash == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,19 @@ int tdbEnvOpen(const char *rootDir, int szPage, int pages, TENV **ppEnv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int tdbEnvClose(TENV *pEnv) {
|
int tdbEnvClose(TENV *pEnv) {
|
||||||
// TODO
|
SPager *pPager;
|
||||||
|
|
||||||
|
if (pEnv) {
|
||||||
|
for (pPager = pEnv->pgrList; pPager; pPager = pEnv->pgrList) {
|
||||||
|
pEnv->pgrList = pPager->pNext;
|
||||||
|
tdbPagerClose(pPager);
|
||||||
|
}
|
||||||
|
|
||||||
|
tdbPCacheClose(pEnv->pCache);
|
||||||
|
tdbOsFree(pEnv->pgrHash);
|
||||||
|
tdbOsFree(pEnv);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -292,6 +292,10 @@ static int tdbPCacheOpenImpl(SPCache *pCache) {
|
||||||
pPage->pFreeNext = pCache->pFree;
|
pPage->pFreeNext = pCache->pFree;
|
||||||
pCache->pFree = pPage;
|
pCache->pFree = pPage;
|
||||||
pCache->nFree++;
|
pCache->nFree++;
|
||||||
|
|
||||||
|
// add to local list
|
||||||
|
pPage->pCacheNext = pCache->pList;
|
||||||
|
pCache->pList = pPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open the hash table
|
// Open the hash table
|
||||||
|
@ -317,9 +321,10 @@ static int tdbPCacheCloseImpl(SPCache *pCache) {
|
||||||
|
|
||||||
for (pPage = pCache->pList; pPage; pPage = pCache->pList) {
|
for (pPage = pCache->pList; pPage; pPage = pCache->pList) {
|
||||||
pCache->pList = pPage->pCacheNext;
|
pCache->pList = pPage->pCacheNext;
|
||||||
tdbPageDestroy(pPage, NULL, NULL);
|
tdbPageDestroy(pPage, tdbDefaultFree, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tdbOsFree(pCache->pgHash);
|
||||||
tdbPCacheDestroyLock(pCache);
|
tdbPCacheDestroyLock(pCache);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,13 @@ int tdbPagerOpen(SPCache *pCache, const char *fileName, SPager **ppPager) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int tdbPagerClose(SPager *pPager) {
|
int tdbPagerClose(SPager *pPager) {
|
||||||
// TODO
|
if (pPager) {
|
||||||
|
if (pPager->inTran) {
|
||||||
|
tdbOsClose(pPager->jfd);
|
||||||
|
}
|
||||||
|
tdbOsClose(pPager->fd);
|
||||||
|
tdbOsFree(pPager);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue