From 82a25f9035b8fb2fbf5165ac3ba7f77deba4fa35 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Fri, 13 Jan 2023 13:49:34 +0200 Subject: [PATCH] BAN: implement placement new --- BAN/BAN/Memory.cpp | 13 ------------- BAN/Makefile | 1 - BAN/include/BAN/Memory.h | 14 ++++++++++++++ 3 files changed, 14 insertions(+), 14 deletions(-) delete mode 100644 BAN/BAN/Memory.cpp diff --git a/BAN/BAN/Memory.cpp b/BAN/BAN/Memory.cpp deleted file mode 100644 index e69559cdf..000000000 --- a/BAN/BAN/Memory.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include - -namespace std { enum class align_val_t : size_t {}; } - -void* operator new(size_t size) { return BAN::allocator(size); } -void* operator new[](size_t size) { return BAN::allocator(size); } -void* operator new(size_t size, std::align_val_t al) { return BAN::allocator_align(size, (size_t)al); } -void* operator new[](size_t size, std::align_val_t al) { return BAN::allocator_align(size, (size_t)al); } - -void operator delete(void* addr) { BAN::deallocator(addr); } -void operator delete[](void* addr) { BAN::deallocator(addr); } -void operator delete(void* addr, size_t) { BAN::deallocator(addr); } -void operator delete[](void* addr, size_t) { BAN::deallocator(addr); } \ No newline at end of file diff --git a/BAN/Makefile b/BAN/Makefile index 18975bc73..38dfc3775 100644 --- a/BAN/Makefile +++ b/BAN/Makefile @@ -33,7 +33,6 @@ FREEOBJS= \ $(ARCH_FREEOBJS) \ BAN/String.o \ BAN/StringView.o \ -BAN/Memory.o \ HOSTEDOBJS=\ $(ARCH_HOSTEDOBJS) \ diff --git a/BAN/include/BAN/Memory.h b/BAN/include/BAN/Memory.h index c3dbc3f1c..086365360 100644 --- a/BAN/include/BAN/Memory.h +++ b/BAN/include/BAN/Memory.h @@ -37,3 +37,17 @@ namespace BAN }; } + +namespace std { enum class align_val_t : size_t {}; } + +inline void* operator new(size_t size) { return BAN::allocator(size); } +inline void* operator new[](size_t size) { return BAN::allocator(size); } +inline void* operator new(size_t size, std::align_val_t align) { return BAN::allocator_align(size, (size_t)align); } +inline void* operator new[](size_t size, std::align_val_t align) { return BAN::allocator_align(size, (size_t)align); } +inline void* operator new(size_t, void* addr) { return addr; } +inline void* operator new[](size_t, void* addr) { return addr; } + +inline void operator delete(void* addr) { BAN::deallocator(addr); } +inline void operator delete[](void* addr) { BAN::deallocator(addr); } +inline void operator delete(void* addr, size_t) { BAN::deallocator(addr); } +inline void operator delete[](void* addr, size_t) { BAN::deallocator(addr); }