From d473efff11e07e5761b3a873e3d00664e21159e2 Mon Sep 17 00:00:00 2001 From: anonymous Date: Sun, 9 Jan 2011 05:08:40 +0600 Subject: nothrow operator new was implemented (fix for COMPILER-8913) --- src/memory.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/memory.cc') diff --git a/src/memory.cc b/src/memory.cc index f8719e7..16167ff 100644 --- a/src/memory.cc +++ b/src/memory.cc @@ -41,6 +41,27 @@ void * operator new(size_t size) { } +namespace std { + struct nothrow_t {}; +} + +__attribute__((weak)) +void * operator new(size_t size, const std::nothrow_t &) throw() { + + void * mem = malloc(size); + while(mem == NULL) { + if(new_handl != NULL) { + new_handl(); + } else { + return NULL; + } + mem = malloc(size); + } + + return mem; +} + + __attribute__((weak)) void operator delete(void * ptr) { free(ptr); -- cgit v1.2.3