#include <visitor.h>
|
| 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) |
|
|
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 **) |
|
Visitor passed to trace methods. All managed pointers must have called the Visitor's trace method on them.
public:
void Trace(
Visitor* visitor)
const {
visitor->
Trace(weak_foo_);
}
private:
};
Definition at line 53 of file visitor.h.
◆ Visitor()
◆ ~Visitor()
◆ DeferTraceToMutatorThreadIfConcurrent()
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.
- Parameters
-
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. |
- Returns
- false if the object does not need to be deferred (i.e. currently traced on the mutator thread) and true otherwise (i.e. currently traced on a concurrent thread).
Definition at line 290 of file visitor.h.
◆ HandleMovableReference()
virtual void HandleMovableReference |
( |
const void ** |
| ) |
|
|
inlineprotectedvirtual |
◆ RegisterMovableReference()
template<typename T >
void RegisterMovableReference |
( |
const T ** |
slot | ) |
|
|
inline |
Registers a slot containing a reference to an object allocated on a compactable space. Such references maybe be arbitrarily moved by the GC.
- Parameters
-
slot | location of reference to object that might be moved by the GC. |
Definition at line 260 of file visitor.h.
◆ RegisterWeakCallback()
virtual void RegisterWeakCallback |
( |
WeakCallback |
callback, |
|
|
const void * |
data |
|
) |
| |
|
inlinevirtual |
Registers a weak callback that is invoked during garbage collection.
- Parameters
-
callback | to be invoked. |
data | custom data that is passed to the callback. |
Definition at line 275 of file visitor.h.
◆ RegisterWeakCallbackMethod()
void RegisterWeakCallbackMethod |
( |
const T * |
object | ) |
|
|
inline |
Registers a weak callback method on the object of type T. See LivenessBroker for an usage example.
- Parameters
-
object | of type T specifying a weak callback method. |
Definition at line 143 of file visitor.h.
◆ Trace() [1/5]
template<typename K , typename
V >
◆ Trace() [2/5]
template<typename T >
void Trace |
( |
const Member< T > & |
member | ) |
|
|
inline |
◆ Trace() [3/5]
template<typename T >
void Trace |
( |
const T & |
object | ) |
|
|
inline |
Trace method for inlined objects that are not allocated themselves but otherwise follow managed heap layout and have a Trace() method.
- Parameters
-
object | reference of the inlined object. |
Definition at line 125 of file visitor.h.
◆ Trace() [4/5]
template<typename T >
void Trace |
( |
const T * |
t | ) |
|
|
inline |
Trace method for raw pointers. Prefer the versions for managed pointers.
- Parameters
-
member | Reference retaining an object. |
Definition at line 71 of file visitor.h.
◆ Trace() [5/5]
◆ TraceEphemeron() [1/2]
template<typename KeyType , typename ValueType >
void TraceEphemeron |
( |
const WeakMember< KeyType > & |
weak_member_key, |
|
|
const Member< ValueType > * |
member_value |
|
) |
| |
|
inline |
Trace method for a single ephemeron. Used for tracing a raw ephemeron in which the key
and value
are kept separately.
- Parameters
-
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 CPPGC_DCHECK.
◆ TraceEphemeron() [2/2]
template<typename KeyType , typename ValueType >
void TraceEphemeron |
( |
const WeakMember< KeyType > & |
weak_member_key, |
|
|
const ValueType * |
value |
|
) |
| |
|
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.
- Parameters
-
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 CPPGC_DCHECK.
◆ TraceStrongly()
template<typename T >
void TraceStrongly |
( |
const WeakMember< T > & |
weak_member | ) |
|
|
inline |
◆ TraceWeakContainer()
template<typename T >
void TraceWeakContainer |
( |
const T * |
object, |
|
|
WeakCallback |
callback, |
|
|
const void * |
data |
|
) |
| |
|
inline |
Trace method for weak containers.
- Parameters
-
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.
◆ Visit()
◆ VisitEphemeron()
virtual void VisitEphemeron |
( |
const void * |
key, |
|
|
const void * |
value, |
|
|
TraceDescriptor |
value_desc |
|
) |
| |
|
inlineprotectedvirtual |
◆ VisitRoot()
◆ VisitWeak()
◆ VisitWeakContainer()
◆ VisitWeakRoot()
◆ internal::BasicCrossThreadPersistent
template<typename T , typename WeaknessPolicy , typename LocationPolicy , typename CheckingPolicy >
◆ internal::BasicPersistent
template<typename T , typename WeaknessPolicy , typename LocationPolicy , typename CheckingPolicy >
◆ internal::ConservativeTracingVisitor
friend class internal::ConservativeTracingVisitor |
|
friend |
◆ internal::VisitorBase
friend class internal::VisitorBase |
|
friend |
The documentation for this class was generated from the following file: