From 2aaa37582db46a2fe4027523fd99677af578cb33 Mon Sep 17 00:00:00 2001 From: evoskuil Date: Fri, 31 Jan 2025 01:37:35 -0500 Subject: [PATCH] Use malloc/free in default arena for leak tracking. --- src/arena.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/arena.cpp b/src/arena.cpp index 936b868fe2..1ea64cf81f 100644 --- a/src/arena.cpp +++ b/src/arena.cpp @@ -18,12 +18,11 @@ */ #include +#include #include namespace libbitcoin { -BC_PUSH_WARNING(NO_NEW_OR_DELETE) - bool operator==(const arena& left, const arena& right) NOEXCEPT { return &left == &right || left.is_equal(right); @@ -41,14 +40,18 @@ void* default_arena::do_allocate(size_t bytes, size_t) THROWS { ////if (align > __STDCPP_DEFAULT_NEW_ALIGNMENT__) //// return ::operator new(bytes, std::align_val_t{ align }); - return ::operator new(bytes); + BC_PUSH_WARNING(NO_MALLOC_OR_FREE) + return std::malloc(bytes); + BC_POP_WARNING() } void default_arena::do_deallocate(void* ptr, size_t, size_t) NOEXCEPT { ////if (align > __STDCPP_DEFAULT_NEW_ALIGNMENT__) //// ::operator delete(ptr, std::align_val_t{ align }); - ::operator delete(ptr); + BC_PUSH_WARNING(NO_MALLOC_OR_FREE) + std::free(ptr); + BC_POP_WARNING() } bool default_arena::do_is_equal(const arena& other) const NOEXCEPT @@ -57,6 +60,7 @@ bool default_arena::do_is_equal(const arena& other) const NOEXCEPT return &other == this; } +// null return indicates that this arena is not detachable. void* default_arena::start(size_t) THROWS { return nullptr; @@ -71,6 +75,4 @@ void default_arena::release(void*) NOEXCEPT { } -BC_POP_WARNING() - } // namespace libbitcoin