From 0ffdefe13852847501b5028cc339cfdebdeb5c29 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Sun, 6 Aug 2023 14:09:42 -0700 Subject: [PATCH] Improved memory clean-up [skip ci] --- src/hnswbuild.c | 6 ++++++ src/hnswutils.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/hnswbuild.c b/src/hnswbuild.c index 8e79db5..971ab8e 100644 --- a/src/hnswbuild.c +++ b/src/hnswbuild.c @@ -183,6 +183,9 @@ CreateElementPages(HnswBuildState * buildstate) UnlockReleaseBuffer(buf); HnswUpdateMetaPage(index, true, buildstate->entryPoint, insertPage, forkNum); + + pfree(etup); + pfree(ntup); } /* @@ -227,6 +230,8 @@ CreateNeighborPages(HnswBuildState * buildstate) GenericXLogFinish(state); UnlockReleaseBuffer(buf); } + + pfree(ntup); } /* @@ -430,6 +435,7 @@ InitBuildState(HnswBuildState * buildstate, Relation heap, Relation index, Index static void FreeBuildState(HnswBuildState * buildstate) { + pfree(buildstate->normvec); MemoryContextDelete(buildstate->tmpCtx); } diff --git a/src/hnswutils.c b/src/hnswutils.c index 0acad00..7a7dde0 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -611,7 +611,7 @@ HnswInitElement(ItemPointer heaptid, int m, double ml, int maxLevel) void HnswFreeElement(HnswElement element) { - list_free(element->heaptids); + list_free_deep(element->heaptids); for (int lc = 0; lc <= element->level; lc++) pfree(element->neighbors[lc].items); pfree(element->neighbors);