v8
9.0.257(node16.0.0)
V8 is Google's open source JavaScript engine
|
#include <visitor.h>
Data Structures | |
class | Key |
Public Member Functions | |
Visitor (Key) | |
virtual | ~Visitor ()=default |
template<typename T > | |
void | Trace (const T *t) |
template<typename T > | |
void | Trace (const Member< T > &member) |
template<typename T > | |
void | Trace (const WeakMember< T > &weak_member) |
template<typename T > | |
void | Trace (const T &object) |
template<typename T , void(T::*)(const LivenessBroker &) method> | |
void | RegisterWeakCallbackMethod (const T *object) |
template<typename K , typename V > | |
void | Trace (const EphemeronPair< K, V > &ephemeron_pair) |
template<typename K , typename V > | |
void | TraceEphemeron (const WeakMember< K > &key, const V *value) |
template<typename T > | |
void | TraceStrongly (const WeakMember< T > &weak_member) |
template<typename T > | |
void | TraceWeakContainer (const T *object, WeakCallback callback, const void *data) |
template<typename T > | |
void | RegisterMovableReference (const T **slot) |
virtual void | RegisterWeakCallback (WeakCallback callback, const void *data) |
virtual V8_WARN_UNUSED_RESULT bool | DeferTraceToMutatorThreadIfConcurrent (const void *parameter, TraceCallback callback, size_t deferred_size) |
Protected Member Functions | |
virtual void | Visit (const void *self, TraceDescriptor) |
virtual void | VisitWeak (const void *self, TraceDescriptor, WeakCallback, const void *weak_member) |
virtual void | VisitRoot (const void *, TraceDescriptor, const SourceLocation &) |
virtual void | VisitWeakRoot (const void *self, TraceDescriptor, WeakCallback, const void *weak_root, const SourceLocation &) |
virtual void | VisitEphemeron (const void *key, const void *value, TraceDescriptor value_desc) |
virtual void | VisitWeakContainer (const void *self, TraceDescriptor strong_desc, TraceDescriptor weak_desc, WeakCallback callback, const void *data) |
virtual void | HandleMovableReference (const void **) |
Friends | |
template<typename T , typename WeaknessPolicy , typename LocationPolicy , typename CheckingPolicy > | |
class | internal::BasicCrossThreadPersistent |
template<typename T , typename WeaknessPolicy , typename LocationPolicy , typename CheckingPolicy > | |
class | internal::BasicPersistent |
class | internal::ConservativeTracingVisitor |
class | internal::VisitorBase |
Visitor passed to trace methods. All managed pointers must have called the Visitor's trace method on them.
Definition at line 60 of file visitor.h.
Referenced by JSVisitor::JSVisitor().
|
virtualdefault |
|
inlinevirtual |
Defers tracing an object from a concurrent thread to the mutator thread. Should be called by Trace methods of types that are not safe to trace concurrently.
parameter | tells the trace callback which object was deferred. |
callback | to be invoked for tracing on the mutator thread. |
deferred_size | size of deferred object. |
|
inlineprotectedvirtual |
Definition at line 262 of file visitor.h.
Referenced by Visitor::RegisterMovableReference().
|
inline |
Registers a slot containing a reference to an object allocated on a compactable space. Such references maybe be arbitrarily moved by the GC.
slot | location of reference to object that might be moved by the GC. |
Definition at line 214 of file visitor.h.
References Visitor::HandleMovableReference().
|
inlinevirtual |
Registers a weak callback that is invoked during garbage collection.
callback | to be invoked. |
data | custom data that is passed to the callback. |
Definition at line 229 of file visitor.h.
Referenced by Visitor::RegisterWeakCallbackMethod().
|
inline |
Registers a weak callback method on the object of type T. See LivenessBroker for an usage example.
object | of type T specifying a weak callback method. |
Definition at line 142 of file visitor.h.
References Visitor::RegisterWeakCallback().
|
inline |
Trace method for EphemeronPair.
ephemeron_pair | EphemeronPair reference weakly retaining a key object and strongly retaining a value object in case the key object is alive. |
|
inline |
Trace method for Member.
member | Member reference retaining an object. |
Definition at line 86 of file visitor.h.
References cppgc::kSentinelPointer.
|
inline |
Trace method for inlined objects that are not allocated themselves but otherwise follow managed heap layout and have a Trace() method.
object | reference of the inlined object. |
Definition at line 124 of file visitor.h.
References BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy >::cppgc::TraceTrait.
|
inline |
Trace method for raw pointers. Prefer the versions for managed pointers.
member | Reference retaining an object. |
Definition at line 70 of file visitor.h.
References BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy >::cppgc::TraceTrait, and Visitor::Visit().
|
inline |
Trace method for WeakMember.
weak_member | WeakMember reference weakly retaining an object. |
Definition at line 98 of file visitor.h.
References BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy >::cppgc::TraceTrait, cppgc::kSentinelPointer, and Visitor::VisitWeak().
|
inline |
Trace method for ephemerons. Used for tracing raw ephemeron in which the key and value are kept separately.
key | WeakMember reference weakly retaining a key object. |
value | Member reference weakly retaining a value object. |
Definition at line 168 of file visitor.h.
References BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy >::cppgc::TraceTrait, and Visitor::VisitEphemeron().
|
inline |
Trace method that strongifies a WeakMember.
weak_member | WeakMember reference retaining an object. |
Definition at line 185 of file visitor.h.
References cppgc::kSentinelPointer.
|
inline |
Trace method for weak containers.
object | reference of the weak container. |
callback | to be invoked. |
data | custom data that is passed to the callback. |
Definition at line 199 of file visitor.h.
References BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy >::cppgc::TraceTrait, and Visitor::VisitWeakContainer().
|
inlineprotectedvirtual |
Definition at line 251 of file visitor.h.
Referenced by Visitor::Trace().
|
inlineprotectedvirtual |
Definition at line 257 of file visitor.h.
Referenced by Visitor::TraceEphemeron().
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Definition at line 252 of file visitor.h.
Referenced by Visitor::Trace().
|
inlineprotectedvirtual |
Definition at line 259 of file visitor.h.
Referenced by Visitor::TraceWeakContainer().
|
inlineprotectedvirtual |
|
friend |
Definition at line 322 of file visitor.h.
Referenced by BasicCrossThreadPersistent< T, WeaknessPolicy, LocationPolicy, CheckingPolicy >::BasicCrossThreadPersistent(), BasicCrossThreadPersistent< T, WeaknessPolicy, LocationPolicy, CheckingPolicy >::Lock(), and BasicCrossThreadPersistent< T, WeaknessPolicy, LocationPolicy, CheckingPolicy >::To().
|
friend |
Definition at line 325 of file visitor.h.
Referenced by BasicPersistent< T, WeaknessPolicy, LocationPolicy, CheckingPolicy >::BasicPersistent(), and BasicPersistent< T, WeaknessPolicy, LocationPolicy, CheckingPolicy >::To().