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

#include <scavenger-inl.h>

Inheritance diagram for v8::internal::ScavengeVisitor:
Collaboration diagram for v8::internal::ScavengeVisitor:

Public Member Functions

 ScavengeVisitor (Scavenger *scavenger)
 
V8_INLINE void VisitPointers (Tagged< HeapObject > host, ObjectSlot start, ObjectSlot end) final
 
V8_INLINE void VisitPointers (Tagged< HeapObject > host, MaybeObjectSlot start, MaybeObjectSlot end) final
 
V8_INLINE size_t VisitEphemeronHashTable (Tagged< Map > map, Tagged< EphemeronHashTable > object, MaybeObjectSize)
 
V8_INLINE size_t VisitJSArrayBuffer (Tagged< Map > map, Tagged< JSArrayBuffer > object, MaybeObjectSize)
 
V8_INLINE size_t VisitJSApiObject (Tagged< Map > map, Tagged< JSObject > object, MaybeObjectSize)
 
V8_INLINE void VisitExternalPointer (Tagged< HeapObject > host, ExternalPointerSlot slot)
 
template<typename TSlot >
void VisitHeapObjectImpl (TSlot slot, Tagged< HeapObject > heap_object)
 
template<typename TSlot >
void VisitPointersImpl (Tagged< HeapObject > host, TSlot start, TSlot end)
 
- Public Member Functions inherited from v8::internal::NewSpaceVisitor< ScavengeVisitor >
V8_INLINE NewSpaceVisitor (Isolate *isolate)
 
void VisitInstructionStreamPointer (Tagged< Code >, InstructionStreamSlot) final
 
void VisitCodeTarget (Tagged< InstructionStream > host, RelocInfo *) final
 
void VisitEmbeddedPointer (Tagged< InstructionStream > host, RelocInfo *) final
 
void VisitMapPointer (Tagged< HeapObject >) override
 
- Public Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ScavengeVisitor >
V8_INLINE ConcurrentHeapVisitor (Isolate *isolate)
 
Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
size_t VisitStringLocked (Tagged< T > object)
 
- Public Member Functions inherited from v8::internal::HeapVisitor< ScavengeVisitor >
 HeapVisitor (LocalIsolate *isolate)
 
 HeapVisitor (Isolate *isolate)
 
 HeapVisitor (Heap *heap)
 
V8_INLINE size_t Visit (Tagged< HeapObject > object)
 
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object)
 
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, int object_size)
 
void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Public Member Functions inherited from v8::internal::ObjectVisitorWithCageBases
 ObjectVisitorWithCageBases (PtrComprCageBase cage_base, PtrComprCageBase code_cage_base)
 
 ObjectVisitorWithCageBases (Isolate *isolate)
 
 ObjectVisitorWithCageBases (Heap *heap)
 
PtrComprCageBase cage_base () const
 
PtrComprCageBase code_cage_base () const
 
- Public Member Functions inherited from v8::internal::ObjectVisitor
virtual ~ObjectVisitor ()=default
 
virtual void VisitCustomWeakPointers (Tagged< HeapObject > host, ObjectSlot start, ObjectSlot end)
 
virtual void VisitPointer (Tagged< HeapObject > host, ObjectSlot p)
 
virtual void VisitPointer (Tagged< HeapObject > host, MaybeObjectSlot p)
 
virtual void VisitCustomWeakPointer (Tagged< HeapObject > host, ObjectSlot p)
 
virtual void VisitEphemeron (Tagged< HeapObject > host, int index, ObjectSlot key, ObjectSlot value)
 
void VisitRelocInfo (Tagged< InstructionStream > host, RelocIterator *it)
 
virtual void VisitExternalReference (Tagged< InstructionStream > host, RelocInfo *rinfo)
 
virtual void VisitInternalReference (Tagged< InstructionStream > host, RelocInfo *rinfo)
 
virtual void VisitOffHeapTarget (Tagged< InstructionStream > host, RelocInfo *rinfo)
 
virtual void VisitCppHeapPointer (Tagged< HeapObject > host, CppHeapPointerSlot slot)
 
virtual void VisitIndirectPointer (Tagged< HeapObject > host, IndirectPointerSlot slot, IndirectPointerMode mode)
 
virtual void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedPointerSlot slot)
 
virtual void VisitProtectedPointer (Tagged< TrustedObject > host, ProtectedMaybeObjectSlot slot)
 
virtual void VisitTrustedPointerTableEntry (Tagged< HeapObject > host, IndirectPointerSlot slot)
 
virtual void VisitJSDispatchTableEntry (Tagged< HeapObject > host, JSDispatchHandle handle)
 

Static Public Member Functions

static V8_INLINE constexpr bool CanEncounterFillerOrFreeSpace ()
 
template<typename T >
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Static Public Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ScavengeVisitor >
static V8_INLINE constexpr bool EnableConcurrentVisitation ()
 

Private Member Functions

template<typename TSlot >
V8_INLINE void VisitHeapObjectImpl (TSlot slot, Tagged< HeapObject > heap_object)
 
template<typename TSlot >
V8_INLINE void VisitPointersImpl (Tagged< HeapObject > host, TSlot start, TSlot end)
 

Private Attributes

Scavenger *const scavenger_
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::NewSpaceVisitor< ScavengeVisitor >
size_t VisitNativeContext (Tagged< Map >, Tagged< NativeContext >, MaybeObjectSize)
 
size_t VisitBytecodeArray (Tagged< Map >, Tagged< BytecodeArray >, MaybeObjectSize)
 
size_t VisitSharedFunctionInfo (Tagged< Map > map, Tagged< SharedFunctionInfo >, MaybeObjectSize)
 
size_t VisitWeakCell (Tagged< Map >, Tagged< WeakCell >, MaybeObjectSize)
 
- Protected Member Functions inherited from v8::internal::HeapVisitor< ScavengeVisitor >
V8_INLINE size_t Visit (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE void VisitMapPointerIfNeeded (Tagged< HeapObject > host)
 
ScavengeVisitorconcrete_visitor ()
 
const ScavengeVisitorconcrete_visitor () const
 
V8_INLINE size_t VisitShortcutCandidate (Tagged< Map > map, Tagged< ConsString > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSObjectFast (Tagged< Map > map, Tagged< JSObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSApiObject (Tagged< Map > map, Tagged< JSObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitStruct (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitFiller (Tagged< Map > map, Tagged< HeapObject > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitFreeSpace (Tagged< Map > map, Tagged< FreeSpace > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitJSObjectSubclass (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
V8_INLINE size_t VisitWithBodyDescriptor (Tagged< Map > map, Tagged< T > object, MaybeObjectSize maybe_object_size)
 
std::optional< Tagged< Object > > GetObjectFilterReadOnlyAndSmiFast (TSlot slot) const
 
- Static Protected Member Functions inherited from v8::internal::NewSpaceVisitor< ScavengeVisitor >
static V8_INLINE constexpr bool ShouldVisitMapPointer ()
 
- Static Protected Member Functions inherited from v8::internal::ConcurrentHeapVisitor< ScavengeVisitor >
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Static Protected Member Functions inherited from v8::internal::HeapVisitor< ScavengeVisitor >
static V8_INLINE constexpr bool ShouldVisitMapPointer ()
 
static V8_INLINE constexpr bool ShouldVisitReadOnlyMapPointer ()
 
static V8_INLINE constexpr bool CanEncounterFillerOrFreeSpace ()
 
static V8_INLINE constexpr bool ShouldUseUncheckedCast ()
 
static V8_INLINE constexpr bool EnableConcurrentVisitation ()
 
static V8_INLINE constexpr bool UsePrecomputedObjectSize ()
 
static V8_INLINE constexpr bool ShouldVisitFullJSObject ()
 
static V8_INLINE Tagged< TCast (Tagged< HeapObject > object, const Heap *heap)
 
- Protected Attributes inherited from v8::internal::HeapVisitor< ScavengeVisitor >
const Heapheap_
 

Detailed Description

Definition at line 436 of file scavenger-inl.h.

Constructor & Destructor Documentation

◆ ScavengeVisitor()

v8::internal::ScavengeVisitor::ScavengeVisitor ( Scavenger * scavenger)
explicit

Definition at line 1488 of file scavenger.cc.

Member Function Documentation

◆ CanEncounterFillerOrFreeSpace()

static V8_INLINE constexpr bool v8::internal::ScavengeVisitor::CanEncounterFillerOrFreeSpace ( )
inlinestaticconstexpr

Definition at line 456 of file scavenger-inl.h.

◆ Cast()

template<typename T >
static V8_INLINE Tagged< T > v8::internal::ScavengeVisitor::Cast ( Tagged< HeapObject > object,
const Heap * heap )
inlinestatic

Definition at line 461 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitEphemeronHashTable()

size_t v8::internal::ScavengeVisitor::VisitEphemeronHashTable ( Tagged< Map > map,
Tagged< EphemeronHashTable > object,
MaybeObjectSize  )

Definition at line 551 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitExternalPointer()

void v8::internal::ScavengeVisitor::VisitExternalPointer ( Tagged< HeapObject > host,
ExternalPointerSlot slot )
virtual

Reimplemented from v8::internal::ObjectVisitor.

Definition at line 533 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitHeapObjectImpl() [1/2]

template<typename TSlot >
V8_INLINE void v8::internal::ScavengeVisitor::VisitHeapObjectImpl ( TSlot slot,
Tagged< HeapObject > heap_object )
private
Here is the caller graph for this function:

◆ VisitHeapObjectImpl() [2/2]

template<typename TSlot >
void v8::internal::ScavengeVisitor::VisitHeapObjectImpl ( TSlot slot,
Tagged< HeapObject > heap_object )

Definition at line 489 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitJSApiObject()

size_t v8::internal::ScavengeVisitor::VisitJSApiObject ( Tagged< Map > map,
Tagged< JSObject > object,
MaybeObjectSize  )

Definition at line 524 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitJSArrayBuffer()

size_t v8::internal::ScavengeVisitor::VisitJSArrayBuffer ( Tagged< Map > map,
Tagged< JSArrayBuffer > object,
MaybeObjectSize  )

Definition at line 515 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitPointers() [1/2]

void v8::internal::ScavengeVisitor::VisitPointers ( Tagged< HeapObject > host,
MaybeObjectSlot start,
MaybeObjectSlot end )
finalvirtual

Implements v8::internal::ObjectVisitor.

Definition at line 482 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitPointers() [2/2]

void v8::internal::ScavengeVisitor::VisitPointers ( Tagged< HeapObject > host,
ObjectSlot start,
ObjectSlot end )
finalvirtual

Implements v8::internal::ObjectVisitor.

Definition at line 477 of file scavenger-inl.h.

Here is the call graph for this function:

◆ VisitPointersImpl() [1/2]

template<typename TSlot >
V8_INLINE void v8::internal::ScavengeVisitor::VisitPointersImpl ( Tagged< HeapObject > host,
TSlot start,
TSlot end )
private
Here is the caller graph for this function:

◆ VisitPointersImpl() [2/2]

template<typename TSlot >
void v8::internal::ScavengeVisitor::VisitPointersImpl ( Tagged< HeapObject > host,
TSlot start,
TSlot end )

Definition at line 498 of file scavenger-inl.h.

Here is the call graph for this function:

Member Data Documentation

◆ scavenger_

Scavenger* const v8::internal::ScavengeVisitor::scavenger_
private

Definition at line 474 of file scavenger-inl.h.


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