Attempt to fix memory leak
Some checks failed
Tests / Clang total: 1305, passed: 1305
Clang |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
Tests / SIMD fallback total: 1305, passed: 1305
Tests / 32-bit versions total: 1305, passed: 1305
Tests / Release [gcc] total: 1305, passed: 1305
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend |:-:|:-:|:-:|:-:|:-: |0|0|0|0|:clap:
weaselab/conflict-set/pipeline/head There was a failure building this commit

This commit is contained in:
2024-07-03 09:48:02 -07:00
parent 88bcc7b75c
commit cc716ef16b

View File

@@ -606,6 +606,14 @@ template <class T> struct BoundedFreeListAllocator {
VALGRIND_MAKE_MEM_NOACCESS(freeList, sizeof(T) + p->partialKeyCapacity); VALGRIND_MAKE_MEM_NOACCESS(freeList, sizeof(T) + p->partialKeyCapacity);
} }
BoundedFreeListAllocator() = default;
BoundedFreeListAllocator(const BoundedFreeListAllocator &) = delete;
BoundedFreeListAllocator &
operator=(const BoundedFreeListAllocator &) = delete;
BoundedFreeListAllocator(BoundedFreeListAllocator &&) = delete;
BoundedFreeListAllocator &operator=(BoundedFreeListAllocator &&) = delete;
~BoundedFreeListAllocator() { ~BoundedFreeListAllocator() {
for (void *iter = freeList; iter != nullptr;) { for (void *iter = freeList; iter != nullptr;) {
VALGRIND_MAKE_MEM_DEFINED(iter, sizeof(Node)); VALGRIND_MAKE_MEM_DEFINED(iter, sizeof(Node));
@@ -2994,7 +3002,8 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl {
oldestVersionFullPrecision = oldestExtantVersion = oldestVersionAtGcBegin = oldestVersionFullPrecision = oldestExtantVersion = oldestVersionAtGcBegin =
newestVersionFullPrecision = oldestVersion; newestVersionFullPrecision = oldestVersion;
allocators = {}; allocators.~NodeAllocators();
new (&allocators) NodeAllocators();
removalKeyArena = Arena{}; removalKeyArena = Arena{};
removalKey = {}; removalKey = {};