Files
snmalloc/src/override/new.cc
Matthew Parkinson 4f9d991449 Initial commit of snmalloc
History squashed from internal development.

Internal history has commit hash:
  e27a0e485c44a5003a802de2661ce3b21e120316
2019-01-15 14:17:55 +00:00

68 lines
1.2 KiB
C++

#include "../mem/alloc.h"
#include "../mem/threadalloc.h"
#include "../snmalloc.h"
#ifdef _WIN32
# define EXCEPTSPEC
#else
# ifdef _GLIBCXX_USE_NOEXCEPT
# define EXCEPTSPEC _GLIBCXX_USE_NOEXCEPT
# elif defined(_NOEXCEPT)
# define EXCEPTSPEC _NOEXCEPT
# else
# define EXCEPTSPEC
# endif
#endif
using namespace snmalloc;
void* operator new(size_t size)
{
return ThreadAlloc::get()->alloc(size);
}
void* operator new[](size_t size)
{
return ThreadAlloc::get()->alloc(size);
}
void* operator new(size_t size, std::nothrow_t&)
{
return ThreadAlloc::get()->alloc(size);
}
void* operator new[](size_t size, std::nothrow_t&)
{
return ThreadAlloc::get()->alloc(size);
}
void operator delete(void* p)EXCEPTSPEC
{
ThreadAlloc::get()->dealloc(p);
}
void operator delete(void* p, size_t size)EXCEPTSPEC
{
ThreadAlloc::get()->dealloc(p, size);
}
void operator delete(void* p, std::nothrow_t&)
{
ThreadAlloc::get()->dealloc(p);
}
void operator delete[](void* p) EXCEPTSPEC
{
ThreadAlloc::get()->dealloc(p);
}
void operator delete[](void* p, size_t size) EXCEPTSPEC
{
ThreadAlloc::get()->dealloc(p, size);
}
void operator delete[](void* p, std::nothrow_t&)
{
ThreadAlloc::get()->dealloc(p);
}