diff options
Diffstat (limited to 'intern/guardedalloc/cpp/mallocn.cpp')
-rw-r--r-- | intern/guardedalloc/cpp/mallocn.cpp | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/intern/guardedalloc/cpp/mallocn.cpp b/intern/guardedalloc/cpp/mallocn.cpp index 130fcb6960b..da77f0e1c83 100644 --- a/intern/guardedalloc/cpp/mallocn.cpp +++ b/intern/guardedalloc/cpp/mallocn.cpp @@ -28,20 +28,36 @@ #include <new> #include "../MEM_guardedalloc.h" -void* operator new (size_t size) +/* not default but can be used when needing to set a string */ +void *operator new(size_t size, const char *str) throw(std::bad_alloc) { - return MEM_mallocN(size, "C++/anonymous"); + return MEM_mallocN(size, str); } - -/* not default but can be used when needing to set a string */ -void* operator new (size_t size, const char *str) +void *operator new[](size_t size, const char *str) throw(std::bad_alloc) { return MEM_mallocN(size, str); } -void operator delete (void *p) + +void *operator new(size_t size) throw(std::bad_alloc) +{ + return MEM_mallocN(size, "C++/anonymous"); +} +void *operator new[](size_t size) throw(std::bad_alloc) +{ + return MEM_mallocN(size, "C++/anonymous[]"); +} + + +void operator delete(void *p) throw() +{ + /* delete NULL is valid in c++ */ + if (p) + MEM_freeN(p); +} +void operator delete[](void *p) throw() { /* delete NULL is valid in c++ */ - if(p) + if (p) MEM_freeN(p); } |