Fix up uses of new/terminate/unexpected handlers to use the new getters.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@120914 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Howard Hinnant 2010-12-04 19:54:11 +00:00
parent 55ddb21dd4
commit 1f970ad73a
2 changed files with 5 additions and 4 deletions

View File

@ -38,7 +38,7 @@ std::get_unexpected() throw()
void
std::unexpected()
{
(*__unexpected_handler)();
(*get_unexpected())();
// unexpected handler should not return
std::terminate();
}
@ -62,7 +62,7 @@ std::terminate()
try
{
#endif // _LIBCPP_NO_EXCEPTIONS
(*__terminate_handler)();
(*get_terminate())();
// handler should not return
::abort ();
#ifndef _LIBCPP_NO_EXCEPTIONS

View File

@ -36,8 +36,9 @@ operator new(std::size_t size) throw (std::bad_alloc)
{
// If malloc fails and there is a new_handler,
// call it to try free up memory.
if (__new_handler)
__new_handler();
std::new_handler nh = get_new_handler();
if (nh)
nh();
else
#ifndef _LIBCPP_NO_EXCEPTIONS
throw std::bad_alloc();