1818 */
1919#include < bitcoin/system/arena.hpp>
2020
21+ #include < cstdlib>
2122#include < bitcoin/system/constants.hpp>
2223
2324namespace libbitcoin {
2425
25- BC_PUSH_WARNING (NO_NEW_OR_DELETE)
26-
2726bool operator ==(const arena& left, const arena& right) NOEXCEPT
2827{
2928 return &left == &right || left.is_equal (right);
@@ -41,14 +40,18 @@ void* default_arena::do_allocate(size_t bytes, size_t) THROWS
4140{
4241 // //if (align > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
4342 // // return ::operator new(bytes, std::align_val_t{ align });
44- return ::operator new (bytes);
43+ BC_PUSH_WARNING (NO_MALLOC_OR_FREE)
44+ return std::malloc (bytes);
45+ BC_POP_WARNING ()
4546}
4647
4748void default_arena::do_deallocate (void * ptr, size_t , size_t ) NOEXCEPT
4849{
4950 // //if (align > __STDCPP_DEFAULT_NEW_ALIGNMENT__)
5051 // // ::operator delete(ptr, std::align_val_t{ align });
51- ::operator delete (ptr);
52+ BC_PUSH_WARNING (NO_MALLOC_OR_FREE)
53+ std::free (ptr);
54+ BC_POP_WARNING ()
5255}
5356
5457bool 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
5760 return &other == this ;
5861}
5962
63+ // null return indicates that this arena is not detachable.
6064void * default_arena::start (size_t ) THROWS
6165{
6266 return nullptr ;
@@ -71,6 +75,4 @@ void default_arena::release(void*) NOEXCEPT
7175{
7276}
7377
74- BC_POP_WARNING ()
75-
7678} // namespace libbitcoin
0 commit comments