split new implementations

master
Daniel Kolesa 2015-04-15 01:39:26 +01:00
parent 6767157db9
commit dba2ac673f
2 changed files with 27 additions and 23 deletions

View File

@ -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 <stdlib.h>
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 *) {}

26
src/new.cpp 100644
View File

@ -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 <stdlib.h>
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);
}