Reorganize cpp APIs and suppress unused function warnings
This commit is contained in:
parent
2e5899c129
commit
b30a5c2f90
@ -97,43 +97,6 @@ newImpl(std::size_t size) noexcept(IsNoExcept) {
|
|||||||
return handleOOM(size, IsNoExcept);
|
return handleOOM(size, IsNoExcept);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if __cpp_aligned_new >= 201606
|
|
||||||
template <bool IsNoExcept>
|
|
||||||
JEMALLOC_ALWAYS_INLINE
|
|
||||||
void *
|
|
||||||
alignedNewImpl(std::size_t size, std::align_val_t alignment) noexcept(IsNoExcept) {
|
|
||||||
void *ptr = je_aligned_alloc(static_cast<std::size_t>(alignment), size);
|
|
||||||
if (likely(ptr != nullptr)) {
|
|
||||||
return ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return handleOOM(size, IsNoExcept);
|
|
||||||
}
|
|
||||||
#endif // __cpp_aligned_new
|
|
||||||
|
|
||||||
JEMALLOC_ALWAYS_INLINE
|
|
||||||
void
|
|
||||||
sizedDeleteImpl(void* ptr, std::size_t size) noexcept {
|
|
||||||
if (unlikely(ptr == nullptr)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
je_sdallocx_noflags(ptr, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
#if __cpp_aligned_new >= 201606
|
|
||||||
JEMALLOC_ALWAYS_INLINE
|
|
||||||
void
|
|
||||||
alignedSizedDeleteImpl(void* ptr, std::size_t size, std::align_val_t alignment) noexcept {
|
|
||||||
if (config_debug) {
|
|
||||||
assert(((size_t)alignment & ((size_t)alignment - 1)) == 0);
|
|
||||||
}
|
|
||||||
if (unlikely(ptr == nullptr)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
je_sdallocx(ptr, size, MALLOCX_ALIGN(alignment));
|
|
||||||
}
|
|
||||||
#endif // __cpp_aligned_new
|
|
||||||
|
|
||||||
void *
|
void *
|
||||||
operator new(std::size_t size) {
|
operator new(std::size_t size) {
|
||||||
return newImpl<false>(size);
|
return newImpl<false>(size);
|
||||||
@ -156,19 +119,31 @@ operator new[](std::size_t size, const std::nothrow_t &) noexcept {
|
|||||||
|
|
||||||
#if __cpp_aligned_new >= 201606
|
#if __cpp_aligned_new >= 201606
|
||||||
|
|
||||||
|
template <bool IsNoExcept>
|
||||||
|
JEMALLOC_ALWAYS_INLINE
|
||||||
|
void *
|
||||||
|
alignedNewImpl(std::size_t size, std::align_val_t alignment) noexcept(IsNoExcept) {
|
||||||
|
void *ptr = je_aligned_alloc(static_cast<std::size_t>(alignment), size);
|
||||||
|
if (likely(ptr != nullptr)) {
|
||||||
|
return ptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return handleOOM(size, IsNoExcept);
|
||||||
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
operator new(std::size_t size, std::align_val_t alignment) {
|
operator new(std::size_t size, std::align_val_t alignment) {
|
||||||
return alignedNewImpl<false>(size, alignment);
|
return alignedNewImpl<false>(size, alignment);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
operator new(std::size_t size, std::align_val_t alignment, const std::nothrow_t &) noexcept {
|
operator new[](std::size_t size, std::align_val_t alignment) {
|
||||||
return alignedNewImpl<true>(size, alignment);
|
return alignedNewImpl<false>(size, alignment);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
operator new[](std::size_t size, std::align_val_t alignment) {
|
operator new(std::size_t size, std::align_val_t alignment, const std::nothrow_t &) noexcept {
|
||||||
return alignedNewImpl<false>(size, alignment);
|
return alignedNewImpl<true>(size, alignment);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *
|
void *
|
||||||
@ -199,6 +174,15 @@ void operator delete[](void *ptr, const std::nothrow_t &) noexcept {
|
|||||||
|
|
||||||
#if __cpp_sized_deallocation >= 201309
|
#if __cpp_sized_deallocation >= 201309
|
||||||
|
|
||||||
|
JEMALLOC_ALWAYS_INLINE
|
||||||
|
void
|
||||||
|
sizedDeleteImpl(void* ptr, std::size_t size) noexcept {
|
||||||
|
if (unlikely(ptr == nullptr)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
je_sdallocx_noflags(ptr, size);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
operator delete(void *ptr, std::size_t size) noexcept {
|
operator delete(void *ptr, std::size_t size) noexcept {
|
||||||
sizedDeleteImpl(ptr, size);
|
sizedDeleteImpl(ptr, size);
|
||||||
@ -213,18 +197,30 @@ operator delete[](void *ptr, std::size_t size) noexcept {
|
|||||||
|
|
||||||
#if __cpp_aligned_new >= 201606
|
#if __cpp_aligned_new >= 201606
|
||||||
|
|
||||||
|
JEMALLOC_ALWAYS_INLINE
|
||||||
|
void
|
||||||
|
alignedSizedDeleteImpl(void* ptr, std::size_t size, std::align_val_t alignment) noexcept {
|
||||||
|
if (config_debug) {
|
||||||
|
assert(((size_t)alignment & ((size_t)alignment - 1)) == 0);
|
||||||
|
}
|
||||||
|
if (unlikely(ptr == nullptr)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
je_sdallocx(ptr, size, MALLOCX_ALIGN(alignment));
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
operator delete(void* ptr, std::align_val_t) noexcept {
|
operator delete(void* ptr, std::align_val_t) noexcept {
|
||||||
je_free(ptr);
|
je_free(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
operator delete(void* ptr, std::align_val_t, const std::nothrow_t&) noexcept {
|
operator delete[](void* ptr, std::align_val_t) noexcept {
|
||||||
je_free(ptr);
|
je_free(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
operator delete[](void* ptr, std::align_val_t) noexcept {
|
operator delete(void* ptr, std::align_val_t, const std::nothrow_t&) noexcept {
|
||||||
je_free(ptr);
|
je_free(ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user