summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoranonymous <local@localhost>2011-01-04 09:08:40 +0600
committeranonymous <local@localhost>2011-01-04 09:08:40 +0600
commit647d602a3563305209487c7ac0f1f2ad120db79a (patch)
tree95539bb2d948ce8423c155b8fac8f5a57080380b
parent51b577f026c241da85acdb469a3d7349a785f636 (diff)
downloadlibcxxrt-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.cc6
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);
}