v8 12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
LivenessBroker Class Referencefinal

#include <liveness-broker.h>

Public Member Functions

template<typename T >
bool IsHeapObjectAlive (const T *object) const
 
template<typename T >
bool IsHeapObjectAlive (const WeakMember< T > &weak_member) const
 
template<typename T >
bool IsHeapObjectAlive (const UntracedMember< T > &untraced_member) const
 

Friends

class internal::LivenessBrokerFactory
 

Detailed Description

The broker is passed to weak callbacks to allow (temporarily) querying the liveness state of an object. References to non-live objects must be cleared when IsHeapObjectAlive() returns false.

class GCedWithCustomWeakCallback final
: public GarbageCollected<GCedWithCustomWeakCallback> {
public:
void CustomWeakCallbackMethod(const LivenessBroker& broker) {
if (!broker.IsHeapObjectAlive(bar))
bar = nullptr;
}
void Trace(cppgc::Visitor* visitor) const {
GCedWithCustomWeakCallback,
&GCedWithCustomWeakCallback::CustomWeakCallbackMethod>(this);
}
};
bool IsHeapObjectAlive(const T *object) const
void RegisterWeakCallbackMethod(const T *object)
Definition visitor.h:188

Definition at line 44 of file liveness-broker.h.

Member Function Documentation

◆ IsHeapObjectAlive() [1/3]

template<typename T >
bool IsHeapObjectAlive ( const T *  object) const
inline

Definition at line 47 of file liveness-broker.h.

References cppgc::kSentinelPointer.

Referenced by EphemeronPair< K, V >::ClearValueIfKeyIsDead().

◆ IsHeapObjectAlive() [2/3]

template<typename T >
bool IsHeapObjectAlive ( const UntracedMember< T > &  untraced_member) const
inline

Definition at line 64 of file liveness-broker.h.

◆ IsHeapObjectAlive() [3/3]

template<typename T >
bool IsHeapObjectAlive ( const WeakMember< T > &  weak_member) const
inline

Definition at line 59 of file liveness-broker.h.

Friends And Related Symbol Documentation

◆ internal::LivenessBrokerFactory

friend class internal::LivenessBrokerFactory
friend

Definition at line 73 of file liveness-broker.h.


The documentation for this class was generated from the following file: