 |
V8
latest master commit
V8 is Google's open source JavaScript engine
|
Go to the documentation of this file.
5 #ifndef INCLUDE_CPPGC_INTERNAL_POINTER_POLICIES_H_
6 #define INCLUDE_CPPGC_INTERNAL_POINTER_POLICIES_H_
17 class PersistentRegion;
20 class StrongMemberTag;
22 class UntracedMemberTag;
42 void CheckPointer(
const void* ptr);
65 : location_(location) {}
87 #if CPPGC_SUPPORTS_OBJECT_NAMES
106 template <
typename T,
typename WeaknessPolicy,
110 template <
typename T,
typename WeaknessTag,
typename WriteBarrierPolicy,
117 template <
typename T>
118 operator T*()
const {
119 static constexpr intptr_t kSentinelValue = -1;
120 return reinterpret_cast<T*
>(kSentinelValue);
133 #endif // INCLUDE_CPPGC_INTERNAL_POINTER_POLICIES_H_
constexpr SourceLocation Location() const
static V8_EXPORT PersistentRegion & GetPersistentRegion(void *object)
std::true_type IsStrongPersistent
IgnoreLocationPolicy DefaultLocationPolicy
static void AssigningBarrier(const void *, const void *)
static V8_EXPORT PersistentRegion & GetPersistentRegion(void *object)
friend bool operator==(SentinelPointer, SentinelPointer)
constexpr const SourceLocation & Location() const
static void InitializingBarrier(const void *, const void *)
friend bool operator!=(SentinelPointer, SentinelPointer)
KeepLocationPolicy & operator=(const KeepLocationPolicy &)=delete
DisabledCheckingPolicy DefaultCheckingPolicy
std::false_type IsStrongPersistent
void CheckPointer(const void *raw)
constexpr KeepLocationPolicy(const SourceLocation &location)
static void AssigningBarrier(const void *, const void *)
constexpr internal::SentinelPointer kSentinelPointer
static void InitializingBarrier(const void *, const void *)
constexpr IgnoreLocationPolicy(const SourceLocation &)