// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_ALLOCATOR_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_PARTITION_ALLOC_H_ #define BASE_ALLOCATOR_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_PARTITION_ALLOC_H_ #include "base/allocator/allocator_shim.h" #include "base/allocator/partition_allocator/partition_alloc.h" #include "base/base_export.h" namespace base { namespace internal { void PartitionAllocSetCallNewHandlerOnMallocFailure(bool value); class BASE_EXPORT PartitionAllocMalloc { public: static partition_alloc::ThreadSafePartitionRoot* Allocator(); // May return |nullptr|, will never return the same pointer as |Allocator()|. static partition_alloc::ThreadSafePartitionRoot* OriginalAllocator(); // May return the same pointer as |Allocator()|. static partition_alloc::ThreadSafePartitionRoot* AlignedAllocator(); }; BASE_EXPORT void* PartitionMalloc(const base::allocator::AllocatorDispatch*, size_t size, void* context); BASE_EXPORT void* PartitionMallocUnchecked( const base::allocator::AllocatorDispatch*, size_t size, void* context); BASE_EXPORT void* PartitionCalloc(const base::allocator::AllocatorDispatch*, size_t n, size_t size, void* context); BASE_EXPORT void* PartitionMemalign(const base::allocator::AllocatorDispatch*, size_t alignment, size_t size, void* context); BASE_EXPORT void* PartitionAlignedAlloc( const base::allocator::AllocatorDispatch* dispatch, size_t size, size_t alignment, void* context); BASE_EXPORT void* PartitionAlignedRealloc( const base::allocator::AllocatorDispatch* dispatch, void* address, size_t size, size_t alignment, void* context); BASE_EXPORT void* PartitionRealloc(const base::allocator::AllocatorDispatch*, void* address, size_t size, void* context); BASE_EXPORT void PartitionFree(const base::allocator::AllocatorDispatch*, void* object, void* context); BASE_EXPORT size_t PartitionGetSizeEstimate(const base::allocator::AllocatorDispatch*, void* address, void* context); } // namespace internal } // namespace base #endif // BASE_ALLOCATOR_ALLOCATOR_SHIM_DEFAULT_DISPATCH_TO_PARTITION_ALLOC_H_