From dba2ac673f94cf3aabe8a9edfe7ad616c71de2e8 Mon Sep 17 00:00:00 2001 From: q66 Date: Wed, 15 Apr 2015 01:39:26 +0100 Subject: [PATCH] split new implementations --- octa/new.h | 24 +----------------------- src/new.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 23 deletions(-) create mode 100644 src/new.cpp diff --git a/octa/new.h b/octa/new.h index 3fdda5e..8c1bef8 100644 --- a/octa/new.h +++ b/octa/new.h @@ -1,4 +1,4 @@ -/* Default new/delete operator overloads for OctaSTD. +/* Default new/delete operator overloads for OctaSTD. Also has an impl file. * * This file is part of OctaSTD. See COPYING.md for futher information. */ @@ -6,28 +6,6 @@ #ifndef OCTA_NEW_H #define OCTA_NEW_H -#include - -inline void *operator new(size_t size) { - void *p = malloc(size); - if (!p) abort(); - return p; -} - -inline void *operator new[](size_t size) { - void *p = malloc(size); - if (!p) abort(); - return p; -} - -inline void operator delete(void *p) { - free(p); -} - -inline void operator delete[](void *p) { - free(p); -} - inline void *operator new (size_t, void *p) { return p; } inline void *operator new [](size_t, void *p) { return p; } inline void operator delete (void *, void *) {} diff --git a/src/new.cpp b/src/new.cpp new file mode 100644 index 0000000..4ddd156 --- /dev/null +++ b/src/new.cpp @@ -0,0 +1,26 @@ +/* Default new/delete operator overloads for OctaSTD. Also has a header file. + * + * This file is part of OctaSTD. See COPYING.md for futher information. + */ + +#include + +void *operator new(size_t size) noexcept { + void *p = malloc(size); + if (!p) abort(); + return p; +} + +void *operator new[](size_t size) noexcept { + void *p = malloc(size); + if (!p) abort(); + return p; +} + +void operator delete(void *p) noexcept { + free(p); +} + +void operator delete[](void *p) noexcept { + free(p); +} \ No newline at end of file