#include "partition_alloc/internal_allocator.h"
namespace partition_alloc::internal {
PA_COMPONENT_EXPORT(PARTITION_ALLOC)
PartitionRoot& InternalAllocatorRoot() {
static internal::base::NoDestructor<PartitionRoot> allocator([] {
PartitionOptions opts;
opts.thread_cache = PartitionOptions::kDisabled;
return opts;
}());
return *allocator;
}
void* InternalPartitionAllocated::operator new(size_t count) {
return InternalAllocatorRoot().Alloc<AllocFlags::kNoHooks>(count);
}
void* InternalPartitionAllocated::operator new(size_t count,
std::align_val_t alignment) {
return InternalAllocatorRoot().AlignedAlloc<AllocFlags::kNoHooks>(
static_cast<size_t>(alignment), count);
}
void InternalPartitionAllocated::operator delete(void* ptr) {
InternalAllocatorRoot().Free<FreeFlags::kNoHooks>(ptr);
}
void InternalPartitionAllocated::operator delete(void* ptr, std::align_val_t) {
InternalAllocatorRoot().Free<FreeFlags::kNoHooks>(ptr);
}
}