v8
9.4.146 (node 16.13.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 KeyType , typename ValueType > | |
void | TraceEphemeron (const WeakMember< KeyType > &weak_member_key, const Member< ValueType > *member_value) |
template<typename KeyType , typename ValueType > | |
void | TraceEphemeron (const WeakMember< KeyType > &weak_member_key, const ValueType *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 61 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 308 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 260 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 275 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 143 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 87 of file visitor.h.
References cppgc::kSentinelPointer.
|
inline |
|
inline |
Trace method for raw pointers. Prefer the versions for managed pointers.
member | Reference retaining an object. |
Definition at line 71 of file visitor.h.
References Visitor::Visit().
|
inline |
Trace method for WeakMember.
weak_member | WeakMember reference weakly retaining an object. |
Definition at line 99 of file visitor.h.
References cppgc::kSentinelPointer, and Visitor::VisitWeak().
|
inline |
Trace method for a single ephemeron. Used for tracing a raw ephemeron in which the key
and value
are kept separately.
weak_member_key | WeakMember reference weakly retaining a key object. |
member_value | Member reference with ephemeron semantics. |
Definition at line 169 of file visitor.h.
References TraceDescriptor::base_object_payload, and Visitor::VisitEphemeron().
|
inline |
Trace method for a single ephemeron. Used for tracing a raw ephemeron in which the key
and value
are kept separately. Note that this overload is for non-GarbageCollected value
s that can be traced though.
key | WeakMember reference weakly retaining a key object. |
value | Reference weakly retaining a value object. Note that ValueType here should not be Member . It is expected that TraceTrait<ValueType>::GetTraceDescriptor(value) returns a TraceDescriptor with a null base pointer but a valid trace method. |
Definition at line 202 of file visitor.h.
References TraceDescriptor::base_object_payload, and Visitor::VisitEphemeron().
|
inline |
Trace method that strongifies a WeakMember.
weak_member | WeakMember reference retaining an object. |
Definition at line 231 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 245 of file visitor.h.
References Visitor::VisitWeakContainer().
|
inlineprotectedvirtual |
Definition at line 297 of file visitor.h.
Referenced by Visitor::Trace().
|
inlineprotectedvirtual |
Definition at line 303 of file visitor.h.
Referenced by Visitor::TraceEphemeron().
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Definition at line 298 of file visitor.h.
Referenced by Visitor::Trace().
|
inlineprotectedvirtual |
Definition at line 305 of file visitor.h.
Referenced by Visitor::TraceWeakContainer().
|
inlineprotectedvirtual |
|
friend |
|
friend |
Definition at line 372 of file visitor.h.
Referenced by BasicPersistent< T, WeaknessPolicy, LocationPolicy, CheckingPolicy >::BasicPersistent(), and BasicPersistent< T, WeaknessPolicy, LocationPolicy, CheckingPolicy >::To().