windows-nt/Source/XPSP1/NT/base/crts/crtw32/stdcpp/stdhndlr.cpp

30 lines
795 B
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
// handler.cpp -- set_new_handler for Microsoft
#include <new>
typedef int (__cdecl *new_hand)(size_t);
new_hand _set_new_handler(new_hand);
_STD_BEGIN
static new_handler _New_handler;
int __cdecl _New_handler_interface(size_t) _THROW1(bad_alloc)
{ // interface to existing Microsoft _callnewh mechanism
_New_handler();
return (1);
}
_CRTIMP2 new_handler __cdecl set_new_handler(new_handler pnew) _THROW0()
{ // remove current handler
_Lockit _Lock(_LOCK_MALLOC); // lock thread to ensure atomicity
new_handler pold = _New_handler;
_New_handler = pnew;
_set_new_handler(pnew ? _New_handler_interface : 0);
return (pold);
}
_STD_END
/*
* Copyright (c) 1992-2001 by P.J. Plauger. ALL RIGHTS RESERVED.
* Consult your license regarding permissions and restrictions.
V3.10:0009 */