![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <unified-heap-marking-visitor.h>
Public Member Functions | |
ConcurrentUnifiedHeapMarkingVisitor (HeapBase &, Heap *, cppgc::internal::ConcurrentMarkingState &, CppHeap::CollectionType) | |
~ConcurrentUnifiedHeapMarkingVisitor () override | |
![]() | |
UnifiedHeapMarkingVisitorBase (HeapBase &, cppgc::internal::BasicMarkingState &, UnifiedHeapMarkingState &) | |
~UnifiedHeapMarkingVisitorBase () override=default | |
![]() | |
JSVisitor (cppgc::Visitor::Key key) | |
~JSVisitor () override=default | |
void | Trace (const TracedReferenceBase &ref) |
![]() | |
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) |
Protected Member Functions | |
bool | DeferTraceToMutatorThreadIfConcurrent (const void *, cppgc::TraceCallback, size_t) final |
![]() | |
void | Visit (const void *, TraceDescriptor) final |
void | VisitMultipleUncompressedMember (const void *, size_t, TraceDescriptorCallback) final |
void | VisitWeak (const void *, TraceDescriptor, WeakCallback, const void *) final |
void | VisitEphemeron (const void *, const void *, TraceDescriptor) final |
void | VisitWeakContainer (const void *self, TraceDescriptor strong_desc, TraceDescriptor weak_desc, WeakCallback callback, const void *data) final |
void | RegisterWeakCallback (WeakCallback, const void *) final |
void | HandleMovableReference (const void **) final |
void | Visit (const TracedReferenceBase &ref) override |
![]() | |
![]() |
Private Attributes | |
std::unique_ptr< MarkingWorklists::Local > | local_marking_worklist_ |
UnifiedHeapMarkingState | concurrent_unified_heap_marking_state_ |
Additional Inherited Members | |
![]() | |
cppgc::internal::BasicMarkingState & | marking_state_ |
UnifiedHeapMarkingState & | unified_heap_marking_state_ |
Definition at line 77 of file unified-heap-marking-visitor.h.
v8::internal::ConcurrentUnifiedHeapMarkingVisitor::ConcurrentUnifiedHeapMarkingVisitor | ( | HeapBase & | heap, |
Heap * | v8_heap, | ||
cppgc::internal::ConcurrentMarkingState & | marking_state, | ||
CppHeap::CollectionType | collection_type ) |
Definition at line 114 of file unified-heap-marking-visitor.cc.
|
override |
Definition at line 131 of file unified-heap-marking-visitor.cc.
|
finalprotectedvirtual |
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. |
Reimplemented from cppgc::Visitor.
Definition at line 140 of file unified-heap-marking-visitor.cc.
|
private |
Definition at line 96 of file unified-heap-marking-visitor.h.
|
private |
Definition at line 95 of file unified-heap-marking-visitor.h.