// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/memory/nonscannable_memory.h" #include "partition_alloc/partition_alloc_buildflags.h" #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) #include "partition_alloc/shim/nonscannable_allocator.h" #else #include #endif namespace base { void* AllocNonScannable(size_t size) { #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) return allocator_shim::NonScannableAllocator::Instance().Alloc(size); #else return ::malloc(size); #endif } void FreeNonScannable(void* ptr) { #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) allocator_shim::NonScannableAllocator::Instance().Free(ptr); #else return ::free(ptr); #endif } void* AllocNonQuarantinable(size_t size) { #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) return allocator_shim::NonQuarantinableAllocator::Instance().Alloc(size); #else return ::malloc(size); #endif } void FreeNonQuarantinable(void* ptr) { #if BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) allocator_shim::NonQuarantinableAllocator::Instance().Free(ptr); #else return ::free(ptr); #endif } } // namespace base