5#ifndef V8_HEAP_MARK_COMPACT_INL_H_
6#define V8_HEAP_MARK_COMPACT_INL_H_
43template <
typename THeapObjectSlot>
54template <
typename THeapObjectSlot>
66 source_page, source_chunk->
Offset(slot.address()));
72 source_page, source_chunk->
Offset(slot.address()));
77 source_page, source_chunk->
Offset(slot.address()));
108#ifdef V8_ENABLE_DIRECT_HANDLE
113 const auto target_worklist =
115 if (!target_worklist) {
#define SBXCHECK(condition)
Tagged< Object > Relaxed_Load() const
V8_EXPORT_PRIVATE bool Contains(Tagged< HeapObject > value) const
Isolate * isolate() const
bool is_shared_space_isolate() const
static constexpr bool IsPacked(Address)
V8_INLINE void MarkObject(Tagged< HeapObject > host, Tagged< HeapObject > obj, MarkingHelper::WorklistTarget target_worklist)
V8_INLINE void AddTransitionArray(Tagged< TransitionArray > array)
V8_INLINE void MarkRootObject(Root root, Tagged< HeapObject > obj, MarkingHelper::WorklistTarget target_worklist)
std::unique_ptr< MarkingWorklists::Local > local_marking_worklists_
MarkingState *const marking_state_
WeakObjects::Local * local_weak_objects()
static V8_INLINE void RecordSlot(Tagged< HeapObject > object, THeapObjectSlot slot, Tagged< HeapObject > target)
V8_INLINE bool InWritableSharedSpace() const
bool IsEvacuationCandidate() const
V8_INLINE Heap * GetHeap()
V8_INLINE bool IsFlagSet(Flag flag) const
V8_INLINE Address address() const
V8_INLINE MemoryChunkMetadata * Metadata()
size_t Offset(Address addr) const
bool ShouldSkipEvacuationSlotRecording() const
static V8_INLINE MemoryChunk * FromHeapObject(Tagged< HeapObject > object)
static MutablePageMetadata * cast(MemoryChunkMetadata *metadata)
static V8_EXPORT_PRIVATE bool Contains(Address address)
static void Insert(MutablePageMetadata *page, size_t slot_offset)
MarkCompactCollector *const collector_
V8_INLINE void MarkObjectByPointer(Root root, FullObjectSlot p)
V8_INLINE void VisitRootPointers(Root root, const char *description, FullObjectSlot start, FullObjectSlot end) final
V8_INLINE void VisitRootPointer(Root root, const char *description, FullObjectSlot p) final
V8_INLINE constexpr StorageType ptr() const
constexpr Address kTaggedNullAddress
V8_INLINE constexpr bool IsHeapObject(TaggedImpl< kRefType, StorageType > obj)
V8_INLINE bool InsideSandbox(uintptr_t address)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)
static V8_INLINE bool TryMarkAndPush(Heap *heap, MarkingWorklists::Local *marking_worklist, MarkingState *marking_state, WorklistTarget target_worklis, Tagged< HeapObject > object)
static V8_INLINE std::optional< WorklistTarget > ShouldMarkObject(Heap *heap, Tagged< HeapObject > object)
#define V8_LIKELY(condition)