diff --git a/libaxx/include/new b/libaxx/include/new index d3ae2686b..c0c468f07 100644 --- a/libaxx/include/new +++ b/libaxx/include/new @@ -1,7 +1,9 @@ #ifndef LIBAXX_NEW #define LIBAXX_NEW -inline void * operator new(unsigned int size, void * ptr) noexcept { +#include + +inline void * operator new(size_t size, void * ptr) noexcept { return ptr; } diff --git a/libaxx/src/new.cpp b/libaxx/src/new.cpp index e26fa85f0..518a3ad21 100644 --- a/libaxx/src/new.cpp +++ b/libaxx/src/new.cpp @@ -2,10 +2,18 @@ // See the C++ standard, section 3.7.4 for those definitions -void * operator new (unsigned int size) { +void * operator new(size_t size) { return malloc(size); } -void operator delete (void * ptr) noexcept { +void operator delete(void * ptr) noexcept { free(ptr); } + +void * operator new[](size_t size) { + return ::operator new(size); +} + +void operator delete[](void * ptr) noexcept { + ::operator delete(ptr); +}