diff options
author | anonymous <local@localhost> | 2011-01-04 09:08:40 +0600 |
---|---|---|
committer | anonymous <local@localhost> | 2011-01-04 09:08:40 +0600 |
commit | 647d602a3563305209487c7ac0f1f2ad120db79a (patch) | |
tree | 95539bb2d948ce8423c155b8fac8f5a57080380b | |
parent | 51b577f026c241da85acdb469a3d7349a785f636 (diff) | |
download | libcxxrt-647d602a3563305209487c7ac0f1f2ad120db79a.tar.gz libcxxrt-647d602a3563305209487c7ac0f1f2ad120db79a.tar.bz2 libcxxrt-647d602a3563305209487c7ac0f1f2ad120db79a.tar.xz |
fix for COMPILER-8905: operator new should throw std::bad_alloc if new handler is not set
-rw-r--r-- | src/memory.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/memory.cc b/src/memory.cc index 8e5574a..f8719e7 100644 --- a/src/memory.cc +++ b/src/memory.cc @@ -29,7 +29,11 @@ void * operator new(size_t size) { void * mem = malloc(size); while(mem == NULL) { - new_handl(); + if(new_handl != NULL) { + new_handl(); + } else { + throw std::bad_alloc(); + } mem = malloc(size); } |