5#ifndef V8_HEAP_MARKING_BARRIER_H_
6#define V8_HEAP_MARKING_BARRIER_H_
21class IncrementalMarking;
47 template <
typename TSlot>
75 void AssertMarkingIsActivated()
const;
76 void AssertSharedMarkingIsActivated()
const;
89 template <
typename TSlot>
105 std::unordered_map<MutablePageMetadata*, std::unique_ptr<TypedSlots>,
static V8_EXPORT_PRIVATE void PublishAll(Heap *heap)
void MarkValue(Tagged< HeapObject > host, Tagged< HeapObject > value)
static V8_EXPORT_PRIVATE void PublishYoung(Heap *heap)
IncrementalMarking * incremental_marking_
const bool is_main_thread_barrier_
std::optional< MarkingWorklists::Local > shared_heap_worklists_
void Activate(bool is_compacting, MarkingMode marking_mode)
void PublishSharedIfNeeded()
void MarkValueLocal(Tagged< HeapObject > value)
void Write(Tagged< HeapObject > host, TSlot slot, Tagged< HeapObject > value)
const bool is_shared_space_isolate_
MarkingBarrier(LocalHeap *)
std::unique_ptr< MarkingWorklists::Local > current_worklists_
bool IsCurrentMarkingBarrier(Tagged< HeapObject > verification_candidate)
void WriteWithoutHost(Tagged< HeapObject > value)
bool is_not_major() const
Isolate * isolate() const
void RecordRelocSlot(Tagged< InstructionStream > host, RelocInfo *rinfo, Tagged< HeapObject > target)
void MarkRange(Tagged< HeapObject > value, TSlot start, TSlot end)
const bool uses_shared_heap_
std::unordered_map< MutablePageMetadata *, std::unique_ptr< TypedSlots >, base::hash< MutablePageMetadata * > > typed_slots_map_
MarkCompactCollector * major_collector_
MinorMarkSweepCollector * minor_collector_
void MarkValueShared(Tagged< HeapObject > value)
MarkingMode marking_mode_
static void DeactivateAll(Heap *heap)
static void DeactivateYoung(Heap *heap)
static void ActivateAll(Heap *heap, bool is_compacting)
static void ActivateYoung(Heap *heap)
MarkingState marking_state_
bool IsCompacting(Tagged< HeapObject > object) const
#define V8_EXPORT_PRIVATE