#include "partition_alloc/pointers/raw_ptr_backup_ref_impl.h"
#include <cstdint>
#include "partition_alloc/buildflags.h"
#include "partition_alloc/dangling_raw_ptr_checks.h"
#include "partition_alloc/in_slot_metadata.h"
#include "partition_alloc/partition_alloc.h"
#include "partition_alloc/partition_alloc_base/check.h"
#include "partition_alloc/partition_root.h"
#include "partition_alloc/reservation_offset_table.h"
namespace base::internal {
template <bool AllowDangling, bool DisableBRP>
void RawPtrBackupRefImpl<AllowDangling, DisableBRP>::AcquireInternal(
uintptr_t address) { … }
template <bool AllowDangling, bool DisableBRP>
void RawPtrBackupRefImpl<AllowDangling, DisableBRP>::ReleaseInternal(
uintptr_t address) { … }
template <bool AllowDangling, bool DisableBRP>
void RawPtrBackupRefImpl<AllowDangling, DisableBRP>::ReportIfDanglingInternal(
uintptr_t address) { … }
template <bool AllowDangling, bool DisableBRP>
bool RawPtrBackupRefImpl<AllowDangling, DisableBRP>::
CheckPointerWithinSameAlloc(uintptr_t before_addr,
uintptr_t after_addr,
size_t type_size) { … }
template <bool AllowDangling, bool DisableBRP>
bool RawPtrBackupRefImpl<AllowDangling, DisableBRP>::IsPointeeAlive(
uintptr_t address) { … }
template struct RawPtrBackupRefImpl<false,
false>;
template struct RawPtrBackupRefImpl<false,
true>;
template struct RawPtrBackupRefImpl<true,
false>;
template struct RawPtrBackupRefImpl<true,
true>;
#if PA_BUILDFLAG(DCHECKS_ARE_ON) || \
PA_BUILDFLAG(ENABLE_BACKUP_REF_PTR_SLOW_CHECKS)
void CheckThatAddressIsntWithinFirstPartitionPage(uintptr_t address) { … }
#endif
}