// Copyright 2018 the V8 project 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 V8_BASE_REGION_ALLOCATOR_H_ #define V8_BASE_REGION_ALLOCATOR_H_ #include <set> #include "src/base/address-region.h" #include "src/base/utils/random-number-generator.h" #include "testing/gtest/include/gtest/gtest_prod.h" // nogncheck namespace v8 { namespace base { // Helper class for managing used/free regions within [address, address+size) // region. Minimum allocation unit is |page_size|. Requested allocation size // is rounded up to |page_size|. // The region allocation algorithm implements best-fit with coalescing strategy: // it tries to find a smallest suitable free region upon allocation and tries // to merge region with its neighbors upon freeing. // // This class does not perform any actual region reservation. // Not thread-safe. class V8_BASE_EXPORT RegionAllocator final { … }; } // namespace base } // namespace v8 #endif // V8_BASE_REGION_ALLOCATOR_H_