diff options
Diffstat (limited to 'libpsn00b/libc/c++-support.cxx')
| -rw-r--r-- | libpsn00b/libc/c++-support.cxx | 53 |
1 files changed, 30 insertions, 23 deletions
diff --git a/libpsn00b/libc/c++-support.cxx b/libpsn00b/libc/c++-support.cxx index d169fdb..38354dd 100644 --- a/libpsn00b/libc/c++-support.cxx +++ b/libpsn00b/libc/c++-support.cxx @@ -1,39 +1,46 @@ -#include <assert.h> + #include <stdint.h> #include <stdlib.h> +#include <stdio.h> -extern "C" - -void __cxa_pure_virtual(void) { - /* Pure C++ virtual call; abort! */ - assert(false); -} +/* Default new/delete operators */ -void* operator new(size_t size) { - return malloc(size); +void *operator new(size_t size) noexcept { + return malloc(size); } -void* operator new[](size_t size) { - return malloc(size); +void *operator new[](size_t size) noexcept { + return malloc(size); } -void operator delete(void* ptr) { - free(ptr); +void operator delete(void *ptr) noexcept { + free(ptr); } -void operator delete[](void* ptr) { - free(ptr); +void operator delete[](void *ptr) noexcept { + free(ptr); } -/*- - * <https://en.cppreference.com/w/cpp/memory/new/operator_delete> +/* + * https://en.cppreference.com/w/cpp/memory/new/operator_delete * * Called if a user-defined replacement is provided, except that it's * unspecified whether other overloads or this overload is called when deleting - * objects of incomplete type and arrays of non-class and trivially-destructible - * class types. + * objects of incomplete type and arrays of non-class and trivially + * destructible class types. * - * A memory allocator can use the given size to be more efficient */ -void operator delete(void* ptr, unsigned int) { - free(ptr); -}
\ No newline at end of file + * A memory allocator can use the given size to be more efficient. + */ +void operator delete(void *ptr, size_t size) noexcept { + free(ptr); +} + +/* Placement new operators */ + +void *operator new(size_t size, void *ptr) noexcept { + return ptr; +} + +void *operator new[](size_t size, void *ptr) noexcept { + return ptr; +} |
