Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 23 additions & 19 deletions src/snmalloc/override/new.cc
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "override.h"
#include "snmalloc/snmalloc.h"

#include <new>
Expand Down Expand Up @@ -96,99 +97,102 @@ namespace snmalloc
}
} // namespace snmalloc

void* operator new(size_t size)
SNMALLOC_EXPORT void* operator new(size_t size)
{
return snmalloc::alloc<snmalloc::handler::Throw>(size);
}

void* operator new[](size_t size)
SNMALLOC_EXPORT void* operator new[](size_t size)
{
return snmalloc::alloc<snmalloc::handler::Throw>(size);
}

void* operator new(size_t size, const std::nothrow_t&) noexcept
SNMALLOC_EXPORT void* operator new(size_t size, const std::nothrow_t&) noexcept
{
return snmalloc::alloc<snmalloc::handler::NoThrow>(size);
}

void* operator new[](size_t size, const std::nothrow_t&) noexcept
SNMALLOC_EXPORT void*
operator new[](size_t size, const std::nothrow_t&) noexcept
{
return snmalloc::alloc<snmalloc::handler::NoThrow>(size);
}

void operator delete(void* p) EXCEPTSPEC
SNMALLOC_EXPORT void operator delete(void* p) EXCEPTSPEC
{
snmalloc::libc::free(p);
}

void operator delete(void* p, size_t size) EXCEPTSPEC
SNMALLOC_EXPORT void operator delete(void* p, size_t size) EXCEPTSPEC
{
snmalloc::libc::free_sized(p, size);
}

void operator delete(void* p, const std::nothrow_t&) noexcept
SNMALLOC_EXPORT void operator delete(void* p, const std::nothrow_t&) noexcept
{
snmalloc::libc::free(p);
}

void operator delete[](void* p) EXCEPTSPEC
SNMALLOC_EXPORT void operator delete[](void* p) EXCEPTSPEC
{
snmalloc::libc::free(p);
}

void operator delete[](void* p, size_t size) EXCEPTSPEC
SNMALLOC_EXPORT void operator delete[](void* p, size_t size) EXCEPTSPEC
{
snmalloc::libc::free_sized(p, size);
}

void operator delete[](void* p, const std::nothrow_t&) noexcept
SNMALLOC_EXPORT void operator delete[](void* p, const std::nothrow_t&) noexcept
{
snmalloc::libc::free(p);
}

void* operator new(size_t size, std::align_val_t val)
SNMALLOC_EXPORT void* operator new(size_t size, std::align_val_t val)
{
size = snmalloc::aligned_size(size_t(val), size);
return snmalloc::alloc<snmalloc::handler::Throw>(size);
}

void* operator new[](size_t size, std::align_val_t val)
SNMALLOC_EXPORT void* operator new[](size_t size, std::align_val_t val)
{
size = snmalloc::aligned_size(size_t(val), size);
return snmalloc::alloc<snmalloc::handler::Throw>(size);
}

void* operator new(
size_t size, std::align_val_t val, const std::nothrow_t&) noexcept
SNMALLOC_EXPORT void*
operator new(size_t size, std::align_val_t val, const std::nothrow_t&) noexcept
{
size = snmalloc::aligned_size(size_t(val), size);
return snmalloc::alloc<snmalloc::handler::NoThrow>(size);
}

void* operator new[](
SNMALLOC_EXPORT void* operator new[](
size_t size, std::align_val_t val, const std::nothrow_t&) noexcept
{
size = snmalloc::aligned_size(size_t(val), size);
return snmalloc::alloc<snmalloc::handler::NoThrow>(size);
}

void operator delete(void* p, std::align_val_t) EXCEPTSPEC
SNMALLOC_EXPORT void operator delete(void* p, std::align_val_t) EXCEPTSPEC
{
snmalloc::libc::free(p);
}

void operator delete[](void* p, std::align_val_t) EXCEPTSPEC
SNMALLOC_EXPORT void operator delete[](void* p, std::align_val_t) EXCEPTSPEC
{
snmalloc::libc::free(p);
}

void operator delete(void* p, size_t size, std::align_val_t val) EXCEPTSPEC
SNMALLOC_EXPORT void
operator delete(void* p, size_t size, std::align_val_t val) EXCEPTSPEC
{
size = snmalloc::aligned_size(size_t(val), size);
snmalloc::libc::free_sized(p, size);
}

void operator delete[](void* p, size_t size, std::align_val_t val) EXCEPTSPEC
SNMALLOC_EXPORT void
operator delete[](void* p, size_t size, std::align_val_t val) EXCEPTSPEC
{
size = snmalloc::aligned_size(size_t(val), size);
snmalloc::libc::free_sized(p, size);
Expand Down
Loading