5#ifndef V8_OBJECTS_VISITORS_INL_H_
6#define V8_OBJECTS_VISITORS_INL_H_
22#if V8_COMPRESS_POINTERS
23 : cage_base_(cage_base)
24#ifdef V8_EXTERNAL_CODE_SPACE
26 code_cage_base_(code_cage_base)
33#if V8_COMPRESS_POINTERS
45template <
typename Visitor>
57template <
typename Visitor>
63template <
typename Visitor>
66 if (!IsSharedHeapObject(host->map(cage_base())))
return;
67 actual_visitor_->VisitMapPointer(host);
70template <
typename Visitor>
82template <
typename Visitor>
92template <
typename Visitor>
95 if (!IsSharedHeapObject(rinfo->
target_object(cage_base())))
return;
96 actual_visitor_->VisitEmbeddedPointer(host, rinfo);
100template <
typename Visitor>
void VisitInstructionStreamPointer(Tagged< Code > host, InstructionStreamSlot slot) final
void VisitMapPointer(Tagged< HeapObject > host) final
void VisitEmbeddedPointer(Tagged< InstructionStream > host, RelocInfo *rinfo) final
void VisitCodeTarget(Tagged< InstructionStream > host, RelocInfo *rinfo) final
static V8_INLINE bool IsSharedHeapObject(Tagged< Object > object)
static V8_INLINE bool IsSharedHeapObject(Tagged< Object > object)
void VisitRunningCode(FullObjectSlot code_slot, FullObjectSlot maybe_istream_slot) final
Tagged< Object > load() const
static V8_INLINE bool InWritableSharedSpace(Tagged< HeapObject > object)
static Tagged< InstructionStream > FromTargetAddress(Address address)
ObjectVisitorWithCageBases(PtrComprCageBase cage_base, PtrComprCageBase code_cage_base)
V8_INLINE Address target_address()
V8_INLINE Tagged< HeapObject > target_object(PtrComprCageBase cage_base)
static constexpr Tagged< Smi > zero()
bool GetHeapObject(Tagged< HeapObject > *result) const
V8_INLINE constexpr bool IsHeapObject(TaggedImpl< kRefType, StorageType > obj)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK(condition)