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

#include <marking-state.h>

Inheritance diagram for cppgc::internal::MutatorMarkingState:
Collaboration diagram for cppgc::internal::MutatorMarkingState:

Classes

class  RecentlyRetracedWeakContainers
 

Public Member Functions

 MutatorMarkingState (HeapBase &heap, MarkingWorklists &marking_worklists, CompactionWorklists *compaction_worklists)
 
 ~MutatorMarkingState () override=default
 
bool MarkNoPush (HeapObjectHeader &header)
 
void ReTraceMarkedWeakContainer (cppgc::Visitor &, HeapObjectHeader &)
 
void DynamicallyMarkAddress (ConstAddress)
 
void FlushNotFullyConstructedObjects ()
 
void FlushDiscoveredEphemeronPairs ()
 
void InvokeWeakRootsCallbackIfNeeded (const void *, TraceDescriptor, WeakCallback, const void *)
 
bool IsMarkedWeakContainer (HeapObjectHeader &)
 
MarkingWorklists::RetraceMarkedObjectsWorklist::Local & retrace_marked_objects_worklist ()
 
V8_EXPORT_PRIVATE void Publish () override
 
- Public Member Functions inherited from cppgc::internal::BasicMarkingState
 BasicMarkingState (HeapBase &heap, MarkingWorklists &, CompactionWorklists *)
 
 ~BasicMarkingState () override
 
 BasicMarkingState (const BasicMarkingState &)=delete
 
BasicMarkingStateoperator= (const BasicMarkingState &)=delete
 
void RegisterWeakReferenceIfNeeded (const void *, TraceDescriptor, WeakCallback, const void *)
 
void RegisterWeakContainerCallback (WeakCallback, const void *)
 
void RegisterWeakCustomCallback (WeakCallback, const void *)
 
void RegisterMovableReference (const void **slot)
 
void ProcessWeakContainer (const void *, TraceDescriptor, WeakCallback, const void *)
 
void ProcessEphemeron (const void *, const void *, TraceDescriptor, Visitor &)
 
void AccountMarkedBytes (const HeapObjectHeader &)
 
void AccountMarkedBytes (BasePage *, size_t)
 
size_t marked_bytes () const
 
size_t RecentlyMarkedBytes ()
 
MarkingWorklists::PreviouslyNotFullyConstructedWorklist::Local & previously_not_fully_constructed_worklist ()
 
MarkingWorklists::WeakCallbackWorklist::Local & weak_container_callback_worklist ()
 
MarkingWorklists::WeakCallbackWorklist::Local & parallel_weak_callback_worklist ()
 
MarkingWorklists::WeakCustomCallbackWorklist::Local & weak_custom_callback_worklist ()
 
MarkingWorklists::WriteBarrierWorklist::Local & write_barrier_worklist ()
 
MarkingWorklists::ConcurrentMarkingBailoutWorklist::Local & concurrent_marking_bailout_worklist ()
 
MarkingWorklists::EphemeronPairsWorklist::Local & discovered_ephemeron_pairs_worklist ()
 
MarkingWorklists::EphemeronPairsWorklist::Local & ephemeron_pairs_for_processing_worklist ()
 
MarkingWorklists::WeakContainersWorklistweak_containers_worklist ()
 
CompactionWorklists::MovableReferencesWorklist::Local * movable_slots_worklist ()
 
bool DidDiscoverNewEphemeronPairs () const
 
void ResetDidDiscoverNewEphemeronPairs ()
 
void set_in_atomic_pause ()
 
- Public Member Functions inherited from cppgc::internal::MarkingStateBase
 MarkingStateBase (HeapBase &, MarkingWorklists &)
 
virtual ~MarkingStateBase ()=default
 
 MarkingStateBase (const MarkingStateBase &)=delete
 
MarkingStateBaseoperator= (const MarkingStateBase &)=delete
 
void MarkAndPush (const void *, TraceDescriptor)
 
void MarkAndPush (HeapObjectHeader &)
 
void PushMarked (HeapObjectHeader &, TraceDescriptor desc)
 
MarkingWorklists::MarkingWorklist::Local & marking_worklist ()
 
MarkingWorklists::NotFullyConstructedWorklistnot_fully_constructed_worklist ()
 

Private Attributes

class cppgc::internal::MutatorMarkingState::RecentlyRetracedWeakContainers recently_retraced_weak_containers_
 
MarkingWorklists::RetraceMarkedObjectsWorklist::Local retrace_marked_objects_worklist_
 

Additional Inherited Members

- Protected Member Functions inherited from cppgc::internal::BasicMarkingState
void RegisterWeakContainer (HeapObjectHeader &)
 
- Protected Member Functions inherited from cppgc::internal::MarkingStateBase
void MarkAndPush (HeapObjectHeader &, TraceDescriptor)
 
bool MarkNoPush (HeapObjectHeader &)
 
- Protected Attributes inherited from cppgc::internal::BasicMarkingState
MarkingWorklists::PreviouslyNotFullyConstructedWorklist::Local previously_not_fully_constructed_worklist_
 
MarkingWorklists::WeakCallbackWorklist::Local weak_container_callback_worklist_
 
MarkingWorklists::WeakCallbackWorklist::Local parallel_weak_callback_worklist_
 
MarkingWorklists::WeakCustomCallbackWorklist::Local weak_custom_callback_worklist_
 
MarkingWorklists::WriteBarrierWorklist::Local write_barrier_worklist_
 
MarkingWorklists::ConcurrentMarkingBailoutWorklist::Local concurrent_marking_bailout_worklist_
 
MarkingWorklists::EphemeronPairsWorklist::Local discovered_ephemeron_pairs_worklist_
 
MarkingWorklists::EphemeronPairsWorklist::Local ephemeron_pairs_for_processing_worklist_
 
MarkingWorklists::WeakContainersWorklistweak_containers_worklist_
 
std::unique_ptr< CompactionWorklists::MovableReferencesWorklist::Local > movable_slots_worklist_
 
size_t marked_bytes_ = 0
 
size_t last_marked_bytes_ = 0
 
bool in_ephemeron_processing_ = false
 
bool discovered_new_ephemeron_pairs_ = false
 
bool in_atomic_pause_ = false
 
heap::base::CachedUnorderedMap< BasePage *, int64_t, v8::base::hash< BasePage * > > marked_bytes_map_
 
- Protected Attributes inherited from cppgc::internal::MarkingStateBase
HeapBaseheap_
 
MarkingWorklists::MarkingWorklist::Local marking_worklist_
 
MarkingWorklists::NotFullyConstructedWorklistnot_fully_constructed_worklist_
 

Detailed Description

Definition at line 357 of file marking-state.h.

Constructor & Destructor Documentation

◆ MutatorMarkingState()

cppgc::internal::MutatorMarkingState::MutatorMarkingState ( HeapBase & heap,
MarkingWorklists & marking_worklists,
CompactionWorklists * compaction_worklists )
inline

Definition at line 359 of file marking-state.h.

◆ ~MutatorMarkingState()

cppgc::internal::MutatorMarkingState::~MutatorMarkingState ( )
overridedefault

Member Function Documentation

◆ DynamicallyMarkAddress()

void cppgc::internal::MutatorMarkingState::DynamicallyMarkAddress ( ConstAddress address)
inline

Definition at line 422 of file marking-state.h.

Here is the call graph for this function:

◆ FlushDiscoveredEphemeronPairs()

void cppgc::internal::MutatorMarkingState::FlushDiscoveredEphemeronPairs ( )

Definition at line 74 of file marking-state.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FlushNotFullyConstructedObjects()

void cppgc::internal::MutatorMarkingState::FlushNotFullyConstructedObjects ( )

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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InvokeWeakRootsCallbackIfNeeded()

void cppgc::internal::MutatorMarkingState::InvokeWeakRootsCallbackIfNeeded ( const void * object,
TraceDescriptor desc,
WeakCallback weak_callback,
const void * parameter )
inline

Definition at line 434 of file marking-state.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsMarkedWeakContainer()

bool cppgc::internal::MutatorMarkingState::IsMarkedWeakContainer ( HeapObjectHeader & header)
inline

Definition at line 448 of file marking-state.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MarkNoPush()

bool cppgc::internal::MutatorMarkingState::MarkNoPush ( HeapObjectHeader & header)
inline

Definition at line 366 of file marking-state.h.

Here is the caller graph for this function:

◆ Publish()

void cppgc::internal::MutatorMarkingState::Publish ( )
overridevirtual

Reimplemented from cppgc::internal::BasicMarkingState.

Definition at line 84 of file marking-state.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ retrace_marked_objects_worklist()

MarkingWorklists::RetraceMarkedObjectsWorklist::Local & cppgc::internal::MutatorMarkingState::retrace_marked_objects_worklist ( )
inline

Definition at line 388 of file marking-state.h.

Here is the caller graph for this function:

◆ ReTraceMarkedWeakContainer()

void cppgc::internal::MutatorMarkingState::ReTraceMarkedWeakContainer ( cppgc::Visitor & visitor,
HeapObjectHeader & header )
inline

Definition at line 415 of file marking-state.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ recently_retraced_weak_containers_

class cppgc::internal::MutatorMarkingState::RecentlyRetracedWeakContainers cppgc::internal::MutatorMarkingState::recently_retraced_weak_containers_
private

◆ retrace_marked_objects_worklist_

MarkingWorklists::RetraceMarkedObjectsWorklist::Local cppgc::internal::MutatorMarkingState::retrace_marked_objects_worklist_
private

Definition at line 412 of file marking-state.h.


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