#include <visitor.h>
|
| Visitor (Key) |
|
virtual | ~Visitor ()=default |
|
template<typename T> |
void | Trace (const Member< T > &member) |
|
template<typename T> |
void | Trace (const WeakMember< T > &weak_member) |
|
template<typename T> |
void | TraceMultiple (const subtle::UncompressedMember< T > *start, size_t len) |
|
template<typename T, std::enable_if_t<!std::is_same_v< Member< T >, subtle::UncompressedMember< T > > > * = nullptr> |
void | TraceMultiple (const Member< T > *start, size_t len) |
|
template<typename T> |
void | Trace (const T &object) |
|
template<typename T> |
void | TraceMultiple (const T *start, size_t len) |
|
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 | TraceStrongContainer (const T *object) |
|
template<typename T> |
void | TraceWeakContainer (const T *object, WeakCallback callback, const void *callback_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 | 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 **) |
|
virtual void | VisitMultipleUncompressedMember (const void *start, size_t len, TraceDescriptorCallback get_trace_descriptor) |
|
Visitor passed to trace methods. All managed pointers must have called the Visitor's trace method on them.
public:
visitor->
Trace(weak_foo_);
}
private:
};
void Trace(const Member< T > &member)
internal::BasicMember< T, internal::WeakMemberTag, internal::DijkstraWriteBarrierPolicy, internal::DefaultMemberCheckingPolicy, internal::DefaultMemberStorage > WeakMember
internal::BasicMember< T, internal::StrongMemberTag, internal::DijkstraWriteBarrierPolicy, internal::DefaultMemberCheckingPolicy, internal::DefaultMemberStorage > Member
Definition at line 75 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 366 of file visitor.h.
References V8_WARN_UNUSED_RESULT.
◆ HandleMovableReference()
virtual void HandleMovableReference |
( |
const void ** | | ) |
|
|
inlineprotectedvirtual |
◆ RegisterMovableReference()
template<typename T>
void RegisterMovableReference |
( |
const T ** | slot | ) |
|
|
inline |
◆ 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 351 of file visitor.h.
Referenced by RegisterWeakCallbackMethod().
◆ RegisterWeakCallbackMethod()
void RegisterWeakCallbackMethod |
( |
const T * | object | ) |
|
|
inline |
◆ Trace() [1/4]
template<typename K, typename
V>
◆ Trace() [2/4]
template<typename T>
void Trace |
( |
const Member< T > & | member | ) |
|
|
inline |
◆ Trace() [3/4]
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 169 of file visitor.h.
References TraceTraitBase< T >::Trace().
◆ Trace() [4/4]
◆ TraceEphemeron() [1/2]
template<typename KeyType, typename ValueType>
void TraceEphemeron |
( |
const WeakMember< KeyType > & | weak_member_key, |
|
|
const Member< ValueType > * | member_value ) |
|
inline |
◆ TraceEphemeron() [2/2]
template<typename KeyType, typename ValueType>
void TraceEphemeron |
( |
const WeakMember< KeyType > & | weak_member_key, |
|
|
const ValueType * | value ) |
|
inline |
◆ TraceMultiple() [1/3]
void TraceMultiple |
( |
const Member< T > * | start, |
|
|
size_t | len ) |
|
inline |
◆ TraceMultiple() [2/3]
◆ TraceMultiple() [3/3]
template<typename T>
void TraceMultiple |
( |
const T * | start, |
|
|
size_t | len ) |
|
inline |
◆ TraceStrongContainer()
template<typename T>
void TraceStrongContainer |
( |
const T * | object | ) |
|
|
inline |
Trace method for retaining containers strongly.
- Parameters
-
object | reference to the container. |
Definition at line 307 of file visitor.h.
◆ 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 * | callback_data ) |
|
inline |
◆ Visit()
◆ VisitEphemeron()
virtual void VisitEphemeron |
( |
const void * | key, |
|
|
const void * | value, |
|
|
TraceDescriptor | value_desc ) |
|
inlineprotectedvirtual |
◆ VisitMultipleUncompressedMember()
virtual void VisitMultipleUncompressedMember |
( |
const void * | start, |
|
|
size_t | len, |
|
|
TraceDescriptorCallback | get_trace_descriptor ) |
|
inlineprotectedvirtual |
◆ VisitWeak()
◆ VisitWeakContainer()
◆ 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: