23 local_marking_worklist_(local_marking_worklist),
24 traced_node_bounds_(
heap.isolate()->traced_handles()->GetNodeBounds()),
25 mark_mode_(collection_type ==
cppgc::
internal::CollectionType::kMinor
30 const void* address) {
31 const auto upper_it = std::upper_bound(
33 [](
const void* needle,
const auto& pair) { return needle < pair.first; });
37 const auto bounds = std::next(upper_it, -1);
38 if (address < bounds->
second) {
41 const_cast<Address*
>(
reinterpret_cast<const Address*
>(bounds->first)),
51 const auto target_worklist =
53 if (target_worklist) {
const TracedHandles::MarkMode mark_mode_
ConservativeTracedHandlesMarkingVisitor(Heap &, MarkingWorklists::Local &, cppgc::internal::CollectionType)
void VisitPointer(const void *) override
const TracedHandles::NodeBounds traced_node_bounds_
MarkingWorklists::Local & local_marking_worklist_
MarkingState & marking_state_
static Tagged< Object > MarkConservatively(Address *inner_location, Address *traced_node_block_base, MarkMode mark_mode)
NonAtomicMarkingState * marking_state_
V8_INLINE constexpr bool IsHeapObject(TaggedImpl< kRefType, StorageType > obj)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
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)