Index: base/allocator/generic_allocators.cc |
diff --git a/base/allocator/generic_allocators.cc b/base/allocator/generic_allocators.cc |
index 5b5f379148c99ec16595ef6d410c60bd5a1ae24c..d12f3b976ac274c4526cc25ad143b130f0ac0203 100644 |
--- a/base/allocator/generic_allocators.cc |
+++ b/base/allocator/generic_allocators.cc |
@@ -24,11 +24,11 @@ inline void* generic_cpp_alloc(size_t size, bool nothrow) { |
extern "C++" { |
-void* __cdecl operator new(size_t size) { |
+void* operator new(size_t size) { |
return generic_cpp_alloc(size, false); |
} |
-void operator delete(void* p) throw() { |
+void operator delete(void* p) { |
free(p); |
} |
@@ -36,18 +36,26 @@ void* operator new[](size_t size) { |
return generic_cpp_alloc(size, false); |
} |
-void operator delete[](void* p) throw() { |
+void operator delete[](void* p) { |
free(p); |
} |
-void* operator new(size_t size, const std::nothrow_t& nt) throw() { |
+void* operator new(size_t size, const std::nothrow_t& nt) { |
return generic_cpp_alloc(size, true); |
} |
-void* operator new[](size_t size, const std::nothrow_t& nt) throw() { |
+void operator delete(void* p, const std::nothrow_t& nt) { |
+ free(p); |
+} |
+ |
+void* operator new[](size_t size, const std::nothrow_t& nt) { |
return generic_cpp_alloc(size, true); |
} |
+void operator delete[](void* p, const std::nothrow_t& nt) { |
+ free(p); |
+} |
+ |
// This function behaves similarly to MSVC's _set_new_mode. |
// If flag is 0 (default), calls to malloc will behave normally. |
// If flag is 1, calls to malloc will behave like calls to new, |