DRTVWR-476: Remove throw(T) from operator new(), operator delete().

llcorehttp's test_allocator.{h,cpp} overrides global operator new(), operator
new[](), operator delete() and operator delete[](). The two operator new()
functions used to be declared with throw(std::bad_alloc). Worse, for VS 2013
and previous, we needed _THROW0() and _THROW1(std::bad_alloc) instead,
requiring #if logic.

But with dynamic throw declarations deprecated, we must actually remove those.
That obviates the THROW_BAD_ALLOC() / THROW_NOTHING() workarounds in
test_allocator.cpp.
master
Nat Goodspeed 2018-10-25 11:07:43 -04:00
parent 1d11bc3c03
commit fba4b6ce76
2 changed files with 6 additions and 23 deletions

View File

@ -43,16 +43,6 @@
#include <boost/thread.hpp>
#if defined(WIN32)
#define THROW_BAD_ALLOC() _THROW1(std::bad_alloc)
#define THROW_NOTHING() _THROW0()
#else
#define THROW_BAD_ALLOC() throw(std::bad_alloc)
#define THROW_NOTHING() throw()
#endif
struct BlockHeader
{
struct Block * next;
@ -152,19 +142,19 @@ std::size_t GetMemTotal()
}
void * operator new(std::size_t size) THROW_BAD_ALLOC()
void * operator new(std::size_t size) //throw(std::bad_alloc)
{
return GetMem( size );
}
void * operator new[](std::size_t size) THROW_BAD_ALLOC()
void * operator new[](std::size_t size) //throw(std::bad_alloc)
{
return GetMem( size );
}
void operator delete(void * p) THROW_NOTHING()
void operator delete(void * p) throw()
{
if (p)
{
@ -173,7 +163,7 @@ void operator delete(void * p) THROW_NOTHING()
}
void operator delete[](void * p) THROW_NOTHING()
void operator delete[](void * p) throw()
{
if (p)
{

View File

@ -31,17 +31,10 @@
#include <new>
size_t GetMemTotal();
#if defined(WIN32)
void * operator new(std::size_t size) _THROW1(std::bad_alloc);
void * operator new[](std::size_t size) _THROW1(std::bad_alloc);
void operator delete(void * p) _THROW0();
void operator delete[](void * p) _THROW0();
#else
void * operator new(std::size_t size) throw (std::bad_alloc);
void * operator new[](std::size_t size) throw (std::bad_alloc);
void * operator new(std::size_t size); //throw (std::bad_alloc);
void * operator new[](std::size_t size); //throw (std::bad_alloc);
void operator delete(void * p) throw ();
void operator delete[](void * p) throw ();
#endif
#endif // TEST_ALLOCATOR_H