12345678910111213141516171819202122232425262728293031323334353637 |
- // Copyright 2021 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_EARLY_ZONE_REGISTRATION_MAC_H_
- #define BASE_ALLOCATOR_EARLY_ZONE_REGISTRATION_MAC_H_
- // This is an Apple-only file, used to register PartitionAlloc's zone *before*
- // the process becomes multi-threaded.
- namespace partition_alloc {
- static constexpr char kDelegatingZoneName[] =
- "DelegatingDefaultZoneForPartitionAlloc";
- static constexpr char kPartitionAllocZoneName[] = "PartitionAlloc";
- // Zone version. Determines which callbacks are set in the various malloc_zone_t
- // structs.
- constexpr int kZoneVersion = 9;
- // Must be called *once*, *before* the process becomes multi-threaded.
- void EarlyMallocZoneRegistration();
- // Tricks the registration code to believe that PartitionAlloc was not already
- // registered. This allows a future library load to register PartitionAlloc's
- // zone as well, rather than bailing out.
- //
- // This is mutually exclusive with EarlyMallocZoneRegistation(), and should
- // ideally be removed. Indeed, by allowing two zones to be registered, we still
- // end up with a split heap, and more memory usage.
- //
- // This is a hack for crbug.com/1274236.
- void AllowDoublePartitionAllocZoneRegistration();
- } // namespace partition_alloc
- #endif // BASE_ALLOCATOR_EARLY_ZONE_REGISTRATION_H_
|