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

#include <marking-state.h>

Inheritance diagram for cppgc::internal::BasicMarkingState:
Collaboration diagram for cppgc::internal::BasicMarkingState:

Public Member Functions

 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 ()
 
V8_EXPORT_PRIVATE void Publish () override
 
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 ()
 

Protected Member Functions

void RegisterWeakContainer (HeapObjectHeader &)
 
- Protected Member Functions inherited from cppgc::internal::MarkingStateBase
void MarkAndPush (HeapObjectHeader &, TraceDescriptor)
 
bool MarkNoPush (HeapObjectHeader &)
 

Protected Attributes

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 112 of file marking-state.h.

Constructor & Destructor Documentation

◆ BasicMarkingState() [1/2]

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

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

Here is the call graph for this function:

◆ ~BasicMarkingState()

cppgc::internal::BasicMarkingState::~BasicMarkingState ( )
override

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

◆ BasicMarkingState() [2/2]

cppgc::internal::BasicMarkingState::BasicMarkingState ( const BasicMarkingState & )
delete

Member Function Documentation

◆ AccountMarkedBytes() [1/2]

void cppgc::internal::BasicMarkingState::AccountMarkedBytes ( BasePage * base_page,
size_t marked_bytes )
inline

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

Here is the call graph for this function:

◆ AccountMarkedBytes() [2/2]

void cppgc::internal::BasicMarkingState::AccountMarkedBytes ( const HeapObjectHeader & header)
inline

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

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

◆ concurrent_marking_bailout_worklist()

MarkingWorklists::ConcurrentMarkingBailoutWorklist::Local & cppgc::internal::BasicMarkingState::concurrent_marking_bailout_worklist ( )
inline

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

Here is the caller graph for this function:

◆ DidDiscoverNewEphemeronPairs()

bool cppgc::internal::BasicMarkingState::DidDiscoverNewEphemeronPairs ( ) const
inline

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

Here is the caller graph for this function:

◆ discovered_ephemeron_pairs_worklist()

MarkingWorklists::EphemeronPairsWorklist::Local & cppgc::internal::BasicMarkingState::discovered_ephemeron_pairs_worklist ( )
inline

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

Here is the caller graph for this function:

◆ ephemeron_pairs_for_processing_worklist()

MarkingWorklists::EphemeronPairsWorklist::Local & cppgc::internal::BasicMarkingState::ephemeron_pairs_for_processing_worklist ( )
inline

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

Here is the caller graph for this function:

◆ marked_bytes()

size_t cppgc::internal::BasicMarkingState::marked_bytes ( ) const
inline

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

Here is the caller graph for this function:

◆ movable_slots_worklist()

CompactionWorklists::MovableReferencesWorklist::Local * cppgc::internal::BasicMarkingState::movable_slots_worklist ( )
inline

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

◆ operator=()

BasicMarkingState & cppgc::internal::BasicMarkingState::operator= ( const BasicMarkingState & )
delete

◆ parallel_weak_callback_worklist()

MarkingWorklists::WeakCallbackWorklist::Local & cppgc::internal::BasicMarkingState::parallel_weak_callback_worklist ( )
inline

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

Here is the caller graph for this function:

◆ previously_not_fully_constructed_worklist()

MarkingWorklists::PreviouslyNotFullyConstructedWorklist::Local & cppgc::internal::BasicMarkingState::previously_not_fully_constructed_worklist ( )
inline

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

Here is the caller graph for this function:

◆ ProcessEphemeron()

void cppgc::internal::BasicMarkingState::ProcessEphemeron ( const void * key,
const void * value,
TraceDescriptor value_desc,
Visitor & visitor )
inline

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

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

◆ ProcessWeakContainer()

void cppgc::internal::BasicMarkingState::ProcessWeakContainer ( const void * object,
TraceDescriptor desc,
WeakCallback callback,
const void * data )
inline

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

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

◆ Publish()

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

Reimplemented from cppgc::internal::MarkingStateBase.

Reimplemented in cppgc::internal::MutatorMarkingState.

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

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

◆ RecentlyMarkedBytes()

size_t cppgc::internal::BasicMarkingState::RecentlyMarkedBytes ( )
inline

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

Here is the caller graph for this function:

◆ RegisterMovableReference()

void cppgc::internal::BasicMarkingState::RegisterMovableReference ( const void ** slot)
inline

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

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

◆ RegisterWeakContainer()

void cppgc::internal::BasicMarkingState::RegisterWeakContainer ( HeapObjectHeader & header)
inlineprotected

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

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

◆ RegisterWeakContainerCallback()

void cppgc::internal::BasicMarkingState::RegisterWeakContainerCallback ( WeakCallback callback,
const void * object )
inline

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

Here is the caller graph for this function:

◆ RegisterWeakCustomCallback()

void cppgc::internal::BasicMarkingState::RegisterWeakCustomCallback ( WeakCallback callback,
const void * object )
inline

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

Here is the caller graph for this function:

◆ RegisterWeakReferenceIfNeeded()

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

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

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

◆ ResetDidDiscoverNewEphemeronPairs()

void cppgc::internal::BasicMarkingState::ResetDidDiscoverNewEphemeronPairs ( )
inline

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

Here is the caller graph for this function:

◆ set_in_atomic_pause()

void cppgc::internal::BasicMarkingState::set_in_atomic_pause ( )
inline

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

Here is the caller graph for this function:

◆ weak_container_callback_worklist()

MarkingWorklists::WeakCallbackWorklist::Local & cppgc::internal::BasicMarkingState::weak_container_callback_worklist ( )
inline

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

Here is the caller graph for this function:

◆ weak_containers_worklist()

MarkingWorklists::WeakContainersWorklist & cppgc::internal::BasicMarkingState::weak_containers_worklist ( )
inline

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

◆ weak_custom_callback_worklist()

MarkingWorklists::WeakCustomCallbackWorklist::Local & cppgc::internal::BasicMarkingState::weak_custom_callback_worklist ( )
inline

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

Here is the caller graph for this function:

◆ write_barrier_worklist()

MarkingWorklists::WriteBarrierWorklist::Local & cppgc::internal::BasicMarkingState::write_barrier_worklist ( )
inline

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

Here is the caller graph for this function:

Member Data Documentation

◆ concurrent_marking_bailout_worklist_

MarkingWorklists::ConcurrentMarkingBailoutWorklist::Local cppgc::internal::BasicMarkingState::concurrent_marking_bailout_worklist_
protected

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

◆ discovered_ephemeron_pairs_worklist_

MarkingWorklists::EphemeronPairsWorklist::Local cppgc::internal::BasicMarkingState::discovered_ephemeron_pairs_worklist_
protected

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

◆ discovered_new_ephemeron_pairs_

bool cppgc::internal::BasicMarkingState::discovered_new_ephemeron_pairs_ = false
protected

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

◆ ephemeron_pairs_for_processing_worklist_

MarkingWorklists::EphemeronPairsWorklist::Local cppgc::internal::BasicMarkingState::ephemeron_pairs_for_processing_worklist_
protected

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

◆ in_atomic_pause_

bool cppgc::internal::BasicMarkingState::in_atomic_pause_ = false
protected

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

◆ in_ephemeron_processing_

bool cppgc::internal::BasicMarkingState::in_ephemeron_processing_ = false
protected

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

◆ last_marked_bytes_

size_t cppgc::internal::BasicMarkingState::last_marked_bytes_ = 0
protected

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

◆ marked_bytes_

size_t cppgc::internal::BasicMarkingState::marked_bytes_ = 0
protected

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

◆ marked_bytes_map_

heap::base::CachedUnorderedMap<BasePage*, int64_t, v8::base::hash<BasePage*> > cppgc::internal::BasicMarkingState::marked_bytes_map_
protected

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

◆ movable_slots_worklist_

std::unique_ptr<CompactionWorklists::MovableReferencesWorklist::Local> cppgc::internal::BasicMarkingState::movable_slots_worklist_
protected

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

◆ parallel_weak_callback_worklist_

MarkingWorklists::WeakCallbackWorklist::Local cppgc::internal::BasicMarkingState::parallel_weak_callback_worklist_
protected

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

◆ previously_not_fully_constructed_worklist_

MarkingWorklists::PreviouslyNotFullyConstructedWorklist::Local cppgc::internal::BasicMarkingState::previously_not_fully_constructed_worklist_
protected

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

◆ weak_container_callback_worklist_

MarkingWorklists::WeakCallbackWorklist::Local cppgc::internal::BasicMarkingState::weak_container_callback_worklist_
protected

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

◆ weak_containers_worklist_

MarkingWorklists::WeakContainersWorklist& cppgc::internal::BasicMarkingState::weak_containers_worklist_
protected

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

◆ weak_custom_callback_worklist_

MarkingWorklists::WeakCustomCallbackWorklist::Local cppgc::internal::BasicMarkingState::weak_custom_callback_worklist_
protected

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

◆ write_barrier_worklist_

MarkingWorklists::WriteBarrierWorklist::Local cppgc::internal::BasicMarkingState::write_barrier_worklist_
protected

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


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