v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
cppgc::internal::MarkingVisitorBase Class Reference

#include <marking-visitor.h>

Inheritance diagram for cppgc::internal::MarkingVisitorBase:
Collaboration diagram for cppgc::internal::MarkingVisitorBase:

Public Member Functions

 MarkingVisitorBase (HeapBase &, BasicMarkingState &)
 
 ~MarkingVisitorBase () override=default
 
- Public Member Functions inherited from cppgc::internal::VisitorBase
 VisitorBase ()
 
 ~VisitorBase () override=default
 
 VisitorBase (const VisitorBase &)=delete
 
VisitorBaseoperator= (const VisitorBase &)=delete
 
- Public Member Functions inherited from cppgc::Visitor
 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 V8_WARN_UNUSED_RESULT bool DeferTraceToMutatorThreadIfConcurrent (const void *parameter, TraceCallback callback, size_t deferred_size)
 

Protected Member Functions

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 *object, TraceDescriptor strong_desc, TraceDescriptor weak_desc, WeakCallback callback, const void *data) final
 
void RegisterWeakCallback (WeakCallback, const void *) final
 
void HandleMovableReference (const void **) final
 
- Protected Member Functions inherited from cppgc::Visitor

Protected Attributes

BasicMarkingStatemarking_state_
 

Additional Inherited Members

- Static Public Member Functions inherited from cppgc::internal::VisitorBase
template<typename T >
static void TraceRawForTesting (cppgc::Visitor *visitor, const T *t)
 

Detailed Description

Definition at line 23 of file marking-visitor.h.

Constructor & Destructor Documentation

◆ MarkingVisitorBase()

cppgc::internal::MarkingVisitorBase::MarkingVisitorBase ( HeapBase & heap,
BasicMarkingState & marking_state )

Definition at line 17 of file marking-visitor.cc.

◆ ~MarkingVisitorBase()

cppgc::internal::MarkingVisitorBase::~MarkingVisitorBase ( )
overridedefault

Member Function Documentation

◆ HandleMovableReference()

void cppgc::internal::MarkingVisitorBase::HandleMovableReference ( const void ** slot)
finalprotectedvirtual

Reimplemented from cppgc::Visitor.

Definition at line 83 of file marking-visitor.cc.

Here is the call graph for this function:

◆ RegisterWeakCallback()

void cppgc::internal::MarkingVisitorBase::RegisterWeakCallback ( WeakCallback callback,
const void * data )
finalprotectedvirtual

Registers a weak callback that is invoked during garbage collection.

Parameters
callbackto be invoked.
datacustom data that is passed to the callback.

Reimplemented from cppgc::Visitor.

Definition at line 78 of file marking-visitor.cc.

Here is the call graph for this function:

◆ Visit()

void cppgc::internal::MarkingVisitorBase::Visit ( const void * object,
TraceDescriptor desc )
finalprotectedvirtual

Reimplemented from cppgc::Visitor.

Definition at line 21 of file marking-visitor.cc.

Here is the call graph for this function:

◆ VisitEphemeron()

void cppgc::internal::MarkingVisitorBase::VisitEphemeron ( const void * key,
const void * value,
TraceDescriptor value_desc )
finalprotectedvirtual

Reimplemented from cppgc::Visitor.

Definition at line 65 of file marking-visitor.cc.

Here is the call graph for this function:

◆ VisitMultipleUncompressedMember()

void cppgc::internal::MarkingVisitorBase::VisitMultipleUncompressedMember ( const void * start,
size_t len,
TraceDescriptorCallback get_trace_descriptor )
finalprotectedvirtual

Reimplemented from cppgc::Visitor.

Definition at line 25 of file marking-visitor.cc.

Here is the call graph for this function:

◆ VisitWeak()

void cppgc::internal::MarkingVisitorBase::VisitWeak ( const void * object,
TraceDescriptor desc,
WeakCallback weak_callback,
const void * weak_member )
finalprotectedvirtual

Reimplemented from cppgc::Visitor.

Definition at line 58 of file marking-visitor.cc.

Here is the call graph for this function:

◆ VisitWeakContainer()

void cppgc::internal::MarkingVisitorBase::VisitWeakContainer ( const void * object,
TraceDescriptor strong_desc,
TraceDescriptor weak_desc,
WeakCallback callback,
const void * data )
finalprotectedvirtual

Reimplemented from cppgc::Visitor.

Definition at line 70 of file marking-visitor.cc.

Here is the call graph for this function:

Member Data Documentation

◆ marking_state_

BasicMarkingState& cppgc::internal::MarkingVisitorBase::marking_state_
protected

Definition at line 44 of file marking-visitor.h.


The documentation for this class was generated from the following files: