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

#include <heap-object.h>

Inheritance diagram for v8::internal::HeapObject:
Collaboration diagram for v8::internal::HeapObject:

Classes

struct  SkipTypeCheckTag
 

Public Types

using MapField = TaggedField<MapWord, HeapObject::kMapOffset>
 

Public Member Functions

constexpr HeapObject ()=default
 
void set_map (Isolate *isolate, Tagged< Map > value)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value)
 
ObjectSlot map_slot () const
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_no_write_barrier (Isolate *isolate, Tagged< Map > value, ReleaseStoreTag)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, RelaxedStoreTag=kRelaxedStore)
 
void set_map_safe_transition_no_write_barrier (Isolate *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
template<typename IsolateT >
void set_map_safe_transition (IsolateT *isolate, Tagged< Map > value, ReleaseStoreTag)
 
bool release_compare_and_swap_map_word_forwarded (MapWord old_map_word, Tagged< HeapObject > new_target_object)
 
bool relaxed_compare_and_swap_map_word_forwarded (MapWord old_map_word, Tagged< HeapObject > new_target_object)
 
template<typename IsolateT >
void set_map_after_allocation (IsolateT *isolate, Tagged< Map > value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
void set_map_word (Tagged< Map > map, RelaxedStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, RelaxedStoreTag)
 
void set_map_word (Tagged< Map > map, ReleaseStoreTag)
 
void set_map_word_forwarded (Tagged< HeapObject > target_object, ReleaseStoreTag)
 
ReadOnlyRoots EarlyGetReadOnlyRoots () const
 
Address address () const
 
V8_EXPORT_PRIVATE int SizeFromMap (Tagged< Map > map) const
 
template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
T ReadField (size_t offset) const
 
template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
void WriteField (size_t offset, T value) const
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T Relaxed_ReadField (size_t offset) const
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
void Relaxed_WriteField (size_t offset, T value)
 
template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T Acquire_ReadField (size_t offset) const
 
Address ReadSandboxedPointerField (size_t offset, PtrComprCageBase cage_base) const
 
void WriteSandboxedPointerField (size_t offset, PtrComprCageBase cage_base, Address value)
 
void WriteSandboxedPointerField (size_t offset, Isolate *isolate, Address value)
 
size_t ReadBoundedSizeField (size_t offset) const
 
void WriteBoundedSizeField (size_t offset, size_t value)
 
template<ExternalPointerTag tag>
void InitExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value, WriteBarrierMode mode=UPDATE_WRITE_BARRIER)
 
template<ExternalPointerTagRange tag_range>
Address ReadExternalPointerField (size_t offset, IsolateForSandbox isolate) const
 
template<CppHeapPointerTag lower_bound, CppHeapPointerTag upper_bound>
Address ReadCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate) const
 
Address ReadCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, CppHeapPointerTagRange tag_range) const
 
template<ExternalPointerTag tag>
void WriteExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value)
 
void SetupLazilyInitializedExternalPointerField (size_t offset)
 
bool IsLazilyInitializedExternalPointerFieldInitialized (size_t offset) const
 
template<ExternalPointerTag tag>
void WriteLazilyInitializedExternalPointerField (size_t offset, IsolateForSandbox isolate, Address value)
 
void SetupLazilyInitializedCppHeapPointerField (size_t offset)
 
template<CppHeapPointerTag tag>
void WriteLazilyInitializedCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, Address value)
 
void WriteLazilyInitializedCppHeapPointerField (size_t offset, IsolateForPointerCompression isolate, Address value, CppHeapPointerTag tag)
 
template<IndirectPointerTag tag>
Tagged< ExposedTrustedObjectReadTrustedPointerField (size_t offset, IsolateForSandbox isolate) const
 
template<IndirectPointerTag tag>
Tagged< ExposedTrustedObjectReadTrustedPointerField (size_t offset, IsolateForSandbox isolate, AcquireLoadTag) const
 
template<IndirectPointerTag tag>
Tagged< ObjectReadMaybeEmptyTrustedPointerField (size_t offset, IsolateForSandbox isolate, AcquireLoadTag) const
 
template<IndirectPointerTag tag>
void WriteTrustedPointerField (size_t offset, Tagged< ExposedTrustedObject > value)
 
bool IsTrustedPointerFieldEmpty (size_t offset) const
 
bool IsTrustedPointerFieldUnpublished (size_t offset, IndirectPointerTag tag, IsolateForSandbox isolate) const
 
void ClearTrustedPointerField (size_t offest)
 
void ClearTrustedPointerField (size_t offest, ReleaseStoreTag)
 
Tagged< CodeReadCodePointerField (size_t offset, IsolateForSandbox isolate) const
 
void WriteCodePointerField (size_t offset, Tagged< Code > value)
 
bool IsCodePointerFieldEmpty (size_t offset) const
 
void ClearCodePointerField (size_t offest)
 
Address ReadCodeEntrypointViaCodePointerField (size_t offset, CodeEntrypointTag tag) const
 
void WriteCodeEntrypointViaCodePointerField (size_t offset, Address value, CodeEntrypointTag tag)
 
ObjectSlot RawField (int byte_offset) const
 
MaybeObjectSlot RawMaybeWeakField (int byte_offset) const
 
InstructionStreamSlot RawInstructionStreamField (int byte_offset) const
 
ExternalPointerSlot RawExternalPointerField (int byte_offset, ExternalPointerTagRange tag_range) const
 
CppHeapPointerSlot RawCppHeapPointerField (int byte_offset) const
 
IndirectPointerSlot RawIndirectPointerField (int byte_offset, IndirectPointerTag tag) const
 
WriteBarrierMode GetWriteBarrierMode (const DisallowGarbageCollection &promise)
 
void HeapObjectShortPrint (std::ostream &os)
 
void Print ()
 
bool CheckRequiredAlignment (PtrComprCageBase cage_base) const
 
bool NeedsRehashing (InstanceType instance_type) const
 
bool NeedsRehashing (PtrComprCageBase cage_base) const
 
bool CanBeRehashed (PtrComprCageBase cage_base) const
 
template<typename IsolateT >
void RehashBasedOnMap (IsolateT *isolate)
 
Address GetFieldAddress (int field_offset) const
 
HeapObjectoperator-> ()
 
const HeapObjectoperator-> () const
 
template<HeapObject::EmitWriteBarrier emit_write_barrier, typename MemoryOrder , typename IsolateT >
void set_map (IsolateT *isolate, Tagged< Map > value, MemoryOrder order, VerificationMode mode)
 
- Public Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
V8_INLINE constexpr TaggedImpl ()
 
V8_INLINE constexpr TaggedImpl (Address ptr)
 
 operator bool () const=delete
 
constexpr bool operator== (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool operator!= (TaggedImpl< kOtherRefType, U > other) const
 
constexpr bool SafeEquals (TaggedImpl< kOtherRefType, Address > other) const
 
constexpr bool operator< (TaggedImpl other) const
 
V8_INLINE constexpr Address ptr () const
 
constexpr bool IsObject () const
 
constexpr bool IsSmi () const
 
bool ToSmi (Tagged< Smi > *value) const
 
Tagged< SmiToSmi () const
 
constexpr bool IsHeapObject () const
 
constexpr bool IsCleared () const
 
constexpr bool IsStrongOrWeak () const
 
constexpr bool IsStrong () const
 
constexpr bool IsStrongOrSmi () const
 
constexpr bool IsWeak () const
 
constexpr bool IsWeakOrCleared () const
 
bool GetHeapObjectIfStrong (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfStrong (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong () const
 
Tagged< HeapObjectGetHeapObjectAssumeStrong (Isolate *isolate) const
 
bool GetHeapObjectIfWeak (Tagged< HeapObject > *result) const
 
bool GetHeapObjectIfWeak (Isolate *isolate, Tagged< HeapObject > *result) const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak () const
 
Tagged< HeapObjectGetHeapObjectAssumeWeak (Isolate *isolate) const
 
bool GetHeapObject (Tagged< HeapObject > *result) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result) const
 
bool GetHeapObject (Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
bool GetHeapObject (Isolate *isolate, Tagged< HeapObject > *result, HeapObjectReferenceType *reference_type) const
 
Tagged< HeapObjectGetHeapObject () const
 
Tagged< HeapObjectGetHeapObject (Isolate *isolate) const
 
Tagged< ObjectGetHeapObjectOrSmi () const
 
Tagged< ObjectGetHeapObjectOrSmi (Isolate *isolate) const
 
Tagged< Tcast () const
 

Static Public Member Functions

static void SetFillerMap (const WritableFreeSpace &writable_page, Tagged< Map > value)
 
static Tagged< HeapObjectFromAddress (Address address)
 
template<typename CompareAndSwapImpl >
static Tagged< ObjectSeqCst_CompareAndSwapField (Tagged< Object > expected_value, Tagged< Object > new_value, CompareAndSwapImpl compare_and_swap_impl)
 
template<typename ObjectType >
static JSDispatchHandle AllocateAndInstallJSDispatchHandle (ObjectType host, size_t offset, Isolate *isolate, uint16_t parameter_count, DirectHandle< Code > code, WriteBarrierMode mode=WriteBarrierMode::UPDATE_WRITE_BARRIER)
 
static void Print (Tagged< Object > obj)
 
static void Print (Tagged< Object > obj, std::ostream &os)
 
static AllocationAlignment RequiredAlignment (Tagged< Map > map)
 

Static Public Attributes

static constexpr int kMapOffset = offsetof(HeapObjectLayout, map_)
 
static constexpr int kHeaderSize = sizeof(HeapObjectLayout)
 
- Static Public Attributes inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
static const bool kIsFull
 
static const bool kCanBeWeak
 

Protected Member Functions

V8_INLINE constexpr HeapObject (Address ptr, HeapObject::SkipTypeCheckTag)
 
 HeapObject (Address ptr)
 
Address field_address (size_t offset) const
 
- Protected Member Functions inherited from v8::internal::TaggedImpl< HeapObjectReferenceType::STRONG, Address >
Addressptr_location ()
 
const Addressptr_location () const
 

Static Protected Member Functions

template<typename T >
static bool IsSmi (T obj)
 
template<typename T >
static bool IsHeapObject (T obj)
 

Private Types

enum class  VerificationMode { kSafeMapTransition , kPotentialLayoutChange }
 
enum class  EmitWriteBarrier { kYes , kNo }
 

Private Member Functions

template<EmitWriteBarrier emit_write_barrier, typename MemoryOrder , typename IsolateT >
V8_INLINE void set_map (IsolateT *isolate, Tagged< Map > value, MemoryOrder order, VerificationMode mode)
 

Friends

class Tagged< HeapObject >
 

Detailed Description

Definition at line 146 of file heap-object.h.

Member Typedef Documentation

◆ MapField

Member Enumeration Documentation

◆ EmitWriteBarrier

Enumerator
kYes 
kNo 

Definition at line 528 of file heap-object.h.

◆ VerificationMode

Enumerator
kSafeMapTransition 
kPotentialLayoutChange 

Definition at line 523 of file heap-object.h.

Constructor & Destructor Documentation

◆ HeapObject() [1/3]

v8::internal::HeapObject::HeapObject ( )
constexprdefault

◆ HeapObject() [2/3]

V8_INLINE constexpr v8::internal::HeapObject::HeapObject ( Address ptr,
HeapObject::SkipTypeCheckTag  )
inlineexplicitconstexprprotected

Definition at line 506 of file heap-object.h.

◆ HeapObject() [3/3]

v8::internal::HeapObject::HeapObject ( Address ptr)
inlineexplicitprotected

Definition at line 539 of file heap-object.h.

Here is the call graph for this function:

Member Function Documentation

◆ Acquire_ReadField()

template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T v8::internal::HeapObject::Acquire_ReadField ( size_t offset) const
inline

Definition at line 338 of file objects-inl.h.

Here is the call graph for this function:

◆ address()

Address v8::internal::HeapObject::address ( ) const
inline

Definition at line 228 of file heap-object.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AllocateAndInstallJSDispatchHandle()

template<typename ObjectType >
JSDispatchHandle v8::internal::HeapObject::AllocateAndInstallJSDispatchHandle ( ObjectType host,
size_t offset,
Isolate * isolate,
uint16_t parameter_count,
DirectHandle< Code > code,
WriteBarrierMode mode = WriteBarrierMode::UPDATE_WRITE_BARRIER )
inlinestatic

Definition at line 1204 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CanBeRehashed()

bool v8::internal::HeapObject::CanBeRehashed ( PtrComprCageBase cage_base) const

Definition at line 2129 of file objects.cc.

Here is the call graph for this function:

◆ CheckRequiredAlignment()

bool v8::internal::HeapObject::CheckRequiredAlignment ( PtrComprCageBase cage_base) const
inline

Definition at line 1713 of file objects-inl.h.

Here is the call graph for this function:

◆ ClearCodePointerField()

void v8::internal::HeapObject::ClearCodePointerField ( size_t offest)
inline

Definition at line 1187 of file objects-inl.h.

Here is the call graph for this function:

◆ ClearTrustedPointerField() [1/2]

void v8::internal::HeapObject::ClearTrustedPointerField ( size_t offest)
inline

Definition at line 1161 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ClearTrustedPointerField() [2/2]

void v8::internal::HeapObject::ClearTrustedPointerField ( size_t offest,
ReleaseStoreTag  )
inline

Definition at line 1169 of file objects-inl.h.

Here is the call graph for this function:

◆ EarlyGetReadOnlyRoots()

ReadOnlyRoots v8::internal::HeapObject::EarlyGetReadOnlyRoots ( ) const
inline

Definition at line 1337 of file objects-inl.h.

Here is the call graph for this function:

◆ field_address()

Address v8::internal::HeapObject::field_address ( size_t offset) const
inlineprotected

Definition at line 518 of file heap-object.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ FromAddress()

static Tagged< HeapObject > v8::internal::HeapObject::FromAddress ( Address address)
inlinestatic

Definition at line 222 of file heap-object.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetFieldAddress()

Address v8::internal::HeapObject::GetFieldAddress ( int field_offset) const
inline

Definition at line 1719 of file objects-inl.h.

Here is the call graph for this function:

◆ GetWriteBarrierMode()

WriteBarrierMode v8::internal::HeapObject::GetWriteBarrierMode ( const DisallowGarbageCollection & promise)
inline

Definition at line 1686 of file objects-inl.h.

Here is the call graph for this function:

◆ HeapObjectShortPrint()

void v8::internal::HeapObject::HeapObjectShortPrint ( std::ostream & os)

Definition at line 3432 of file objects-printer.cc.

Here is the call graph for this function:

◆ InitExternalPointerField()

template<ExternalPointerTag tag>
void v8::internal::HeapObject::InitExternalPointerField ( size_t offset,
IsolateForSandbox isolate,
Address value,
WriteBarrierMode mode = UPDATE_WRITE_BARRIER )
inline

Definition at line 980 of file objects-inl.h.

Here is the call graph for this function:

◆ IsCodePointerFieldEmpty()

bool v8::internal::HeapObject::IsCodePointerFieldEmpty ( size_t offset) const
inline

Definition at line 1183 of file objects-inl.h.

Here is the call graph for this function:

◆ IsHeapObject()

template<typename T >
bool v8::internal::HeapObject::IsHeapObject ( T obj)
staticprotected

Definition at line 550 of file heap-object.h.

Here is the call graph for this function:

◆ IsLazilyInitializedExternalPointerFieldInitialized()

bool v8::internal::HeapObject::IsLazilyInitializedExternalPointerFieldInitialized ( size_t offset) const
inline

Definition at line 1026 of file objects-inl.h.

Here is the call graph for this function:

◆ IsSmi()

template<typename T >
bool v8::internal::HeapObject::IsSmi ( T obj)
staticprotected

Definition at line 545 of file heap-object.h.

Here is the call graph for this function:

◆ IsTrustedPointerFieldEmpty()

bool v8::internal::HeapObject::IsTrustedPointerFieldEmpty ( size_t offset) const
inline

Definition at line 1139 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsTrustedPointerFieldUnpublished()

bool v8::internal::HeapObject::IsTrustedPointerFieldUnpublished ( size_t offset,
IndirectPointerTag tag,
IsolateForSandbox isolate ) const
inline

Definition at line 1150 of file objects-inl.h.

Here is the call graph for this function:

◆ map_slot()

ObjectSlot v8::internal::HeapObject::map_slot ( ) const
inline

Definition at line 1534 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NeedsRehashing() [1/2]

bool v8::internal::HeapObject::NeedsRehashing ( InstanceType instance_type) const

Definition at line 2091 of file objects.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NeedsRehashing() [2/2]

bool v8::internal::HeapObject::NeedsRehashing ( PtrComprCageBase cage_base) const

Definition at line 2087 of file objects.cc.

Here is the call graph for this function:

◆ operator->() [1/2]

HeapObject * v8::internal::HeapObject::operator-> ( )
inline

Definition at line 500 of file heap-object.h.

◆ operator->() [2/2]

const HeapObject * v8::internal::HeapObject::operator-> ( ) const
inline

Definition at line 501 of file heap-object.h.

◆ Print() [1/3]

void v8::internal::HeapObject::Print ( )

Definition at line 3422 of file objects-printer.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Print() [2/3]

void v8::internal::HeapObject::Print ( Tagged< Object > obj)
static

Definition at line 3425 of file objects-printer.cc.

Here is the call graph for this function:

◆ Print() [3/3]

void v8::internal::HeapObject::Print ( Tagged< Object > obj,
std::ostream & os )
static

Definition at line 3428 of file objects-printer.cc.

Here is the call graph for this function:

◆ RawCppHeapPointerField()

CppHeapPointerSlot v8::internal::HeapObject::RawCppHeapPointerField ( int byte_offset) const
inline

Definition at line 1245 of file objects-inl.h.

Here is the call graph for this function:

◆ RawExternalPointerField()

ExternalPointerSlot v8::internal::HeapObject::RawExternalPointerField ( int byte_offset,
ExternalPointerTagRange tag_range ) const
inline

Definition at line 1240 of file objects-inl.h.

Here is the call graph for this function:

◆ RawField()

ObjectSlot v8::internal::HeapObject::RawField ( int byte_offset) const
inline

Definition at line 1227 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RawIndirectPointerField()

IndirectPointerSlot v8::internal::HeapObject::RawIndirectPointerField ( int byte_offset,
IndirectPointerTag tag ) const
inline

Definition at line 1249 of file objects-inl.h.

Here is the call graph for this function:

◆ RawInstructionStreamField()

InstructionStreamSlot v8::internal::HeapObject::RawInstructionStreamField ( int byte_offset) const
inline

Definition at line 1235 of file objects-inl.h.

Here is the call graph for this function:

◆ RawMaybeWeakField()

MaybeObjectSlot v8::internal::HeapObject::RawMaybeWeakField ( int byte_offset) const
inline

Definition at line 1231 of file objects-inl.h.

Here is the call graph for this function:

◆ ReadBoundedSizeField()

size_t v8::internal::HeapObject::ReadBoundedSizeField ( size_t offset) const
inline

Definition at line 971 of file objects-inl.h.

Here is the call graph for this function:

◆ ReadCodeEntrypointViaCodePointerField()

Address v8::internal::HeapObject::ReadCodeEntrypointViaCodePointerField ( size_t offset,
CodeEntrypointTag tag ) const
inline

Definition at line 1191 of file objects-inl.h.

Here is the call graph for this function:

◆ ReadCodePointerField()

Tagged< Code > v8::internal::HeapObject::ReadCodePointerField ( size_t offset,
IsolateForSandbox isolate ) const
inline

Definition at line 1173 of file objects-inl.h.

Here is the call graph for this function:

◆ ReadCppHeapPointerField() [1/2]

template<CppHeapPointerTag lower_bound, CppHeapPointerTag upper_bound>
Address v8::internal::HeapObject::ReadCppHeapPointerField ( size_t offset,
IsolateForPointerCompression isolate ) const
inline

Definition at line 997 of file objects-inl.h.

Here is the call graph for this function:

◆ ReadCppHeapPointerField() [2/2]

Address v8::internal::HeapObject::ReadCppHeapPointerField ( size_t offset,
IsolateForPointerCompression isolate,
CppHeapPointerTagRange tag_range ) const
inline

Definition at line 1003 of file objects-inl.h.

Here is the call graph for this function:

◆ ReadExternalPointerField()

template<ExternalPointerTagRange tag_range>
Address v8::internal::HeapObject::ReadExternalPointerField ( size_t offset,
IsolateForSandbox isolate ) const
inline

Definition at line 991 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadField()

template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
T v8::internal::HeapObject::ReadField ( size_t offset) const
inline

Definition at line 239 of file heap-object.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadMaybeEmptyTrustedPointerField()

template<IndirectPointerTag tag>
Tagged< Object > v8::internal::HeapObject::ReadMaybeEmptyTrustedPointerField ( size_t offset,
IsolateForSandbox isolate,
AcquireLoadTag acquire_load ) const
inline

Definition at line 1114 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadSandboxedPointerField()

Address v8::internal::HeapObject::ReadSandboxedPointerField ( size_t offset,
PtrComprCageBase cage_base ) const
inline

Definition at line 954 of file objects-inl.h.

Here is the call graph for this function:

◆ ReadTrustedPointerField() [1/2]

template<IndirectPointerTag tag>
Tagged< ExposedTrustedObject > v8::internal::HeapObject::ReadTrustedPointerField ( size_t offset,
IsolateForSandbox isolate ) const
inline

Definition at line 1096 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadTrustedPointerField() [2/2]

template<IndirectPointerTag tag>
Tagged< ExposedTrustedObject > v8::internal::HeapObject::ReadTrustedPointerField ( size_t offset,
IsolateForSandbox isolate,
AcquireLoadTag acquire_load ) const
inline

Definition at line 1104 of file objects-inl.h.

Here is the call graph for this function:

◆ RehashBasedOnMap()

template<typename IsolateT >
template void v8::internal::HeapObject::RehashBasedOnMap ( IsolateT * isolate)

Definition at line 2166 of file objects.cc.

Here is the call graph for this function:

◆ relaxed_compare_and_swap_map_word_forwarded()

bool v8::internal::HeapObject::relaxed_compare_and_swap_map_word_forwarded ( MapWord old_map_word,
Tagged< HeapObject > new_target_object )
inline

Definition at line 1604 of file objects-inl.h.

Here is the call graph for this function:

◆ Relaxed_ReadField()

template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
T v8::internal::HeapObject::Relaxed_ReadField ( size_t offset) const
inline

Definition at line 311 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Relaxed_WriteField()

template<class T >
requires ((std::is_arithmetic_v<T> || std::is_enum_v<T>) && !std::is_floating_point_v<T>)
void v8::internal::HeapObject::Relaxed_WriteField ( size_t offset,
T value )
inline

Definition at line 324 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ release_compare_and_swap_map_word_forwarded()

bool v8::internal::HeapObject::release_compare_and_swap_map_word_forwarded ( MapWord old_map_word,
Tagged< HeapObject > new_target_object )
inline

Definition at line 1596 of file objects-inl.h.

Here is the call graph for this function:

◆ RequiredAlignment()

AllocationAlignment v8::internal::HeapObject::RequiredAlignment ( Tagged< Map > map)
inlinestatic

Definition at line 1692 of file objects-inl.h.

Here is the caller graph for this function:

◆ SeqCst_CompareAndSwapField()

template<typename CompareAndSwapImpl >
Tagged< Object > v8::internal::HeapObject::SeqCst_CompareAndSwapField ( Tagged< Object > expected_value,
Tagged< Object > new_value,
CompareAndSwapImpl compare_and_swap_impl )
static

Definition at line 352 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_map() [1/4]

void v8::internal::HeapObject::set_map ( Isolate * isolate,
Tagged< Map > value )
inline

Definition at line 1394 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_map() [2/4]

template<EmitWriteBarrier emit_write_barrier, typename MemoryOrder , typename IsolateT >
V8_INLINE void v8::internal::HeapObject::set_map ( IsolateT * isolate,
Tagged< Map > value,
MemoryOrder order,
VerificationMode mode )
private

◆ set_map() [3/4]

template<HeapObject::EmitWriteBarrier emit_write_barrier, typename MemoryOrder , typename IsolateT >
void v8::internal::HeapObject::set_map ( IsolateT * isolate,
Tagged< Map > value,
MemoryOrder order,
VerificationMode mode )

Definition at line 1462 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map() [4/4]

template<typename IsolateT >
void v8::internal::HeapObject::set_map ( IsolateT * isolate,
Tagged< Map > value,
ReleaseStoreTag tag )
inline

Definition at line 1400 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_after_allocation()

template<typename IsolateT >
void v8::internal::HeapObject::set_map_after_allocation ( IsolateT * isolate,
Tagged< Map > value,
WriteBarrierMode mode = UPDATE_WRITE_BARRIER )
inline

Definition at line 1508 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_no_write_barrier() [1/2]

void v8::internal::HeapObject::set_map_no_write_barrier ( Isolate * isolate,
Tagged< Map > value,
RelaxedStoreTag tag = kRelaxedStore )
inline

Definition at line 1448 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_no_write_barrier() [2/2]

void v8::internal::HeapObject::set_map_no_write_barrier ( Isolate * isolate,
Tagged< Map > value,
ReleaseStoreTag tag )
inline

Definition at line 1454 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_safe_transition() [1/2]

template<typename IsolateT >
void v8::internal::HeapObject::set_map_safe_transition ( IsolateT * isolate,
Tagged< Map > value )
inline

Definition at line 1407 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_safe_transition() [2/2]

template<typename IsolateT >
void v8::internal::HeapObject::set_map_safe_transition ( IsolateT * isolate,
Tagged< Map > value,
ReleaseStoreTag tag )
inline

Definition at line 1413 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_safe_transition_no_write_barrier() [1/2]

void v8::internal::HeapObject::set_map_safe_transition_no_write_barrier ( Isolate * isolate,
Tagged< Map > value,
RelaxedStoreTag tag = kRelaxedStore )
inline

Definition at line 1426 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_safe_transition_no_write_barrier() [2/2]

void v8::internal::HeapObject::set_map_safe_transition_no_write_barrier ( Isolate * isolate,
Tagged< Map > value,
ReleaseStoreTag tag )
inline

Definition at line 1433 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_word() [1/2]

void v8::internal::HeapObject::set_map_word ( Tagged< Map > map,
RelaxedStoreTag  )
inline

Definition at line 1551 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_map_word() [2/2]

void v8::internal::HeapObject::set_map_word ( Tagged< Map > map,
ReleaseStoreTag  )
inline

Definition at line 1574 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_word_forwarded() [1/2]

void v8::internal::HeapObject::set_map_word_forwarded ( Tagged< HeapObject > target_object,
RelaxedStoreTag  )
inline

Definition at line 1555 of file objects-inl.h.

Here is the call graph for this function:

◆ set_map_word_forwarded() [2/2]

void v8::internal::HeapObject::set_map_word_forwarded ( Tagged< HeapObject > target_object,
ReleaseStoreTag  )
inline

Definition at line 1590 of file objects-inl.h.

Here is the call graph for this function:

◆ SetFillerMap()

void v8::internal::HeapObject::SetFillerMap ( const WritableFreeSpace & writable_page,
Tagged< Map > value )
inlinestatic

Definition at line 1525 of file objects-inl.h.

Here is the call graph for this function:

◆ SetupLazilyInitializedCppHeapPointerField()

void v8::internal::HeapObject::SetupLazilyInitializedCppHeapPointerField ( size_t offset)
inline

Definition at line 1064 of file objects-inl.h.

Here is the call graph for this function:

◆ SetupLazilyInitializedExternalPointerField()

void v8::internal::HeapObject::SetupLazilyInitializedExternalPointerField ( size_t offset)
inline

Definition at line 1016 of file objects-inl.h.

Here is the call graph for this function:

◆ SizeFromMap()

int v8::internal::HeapObject::SizeFromMap ( Tagged< Map > map) const

Definition at line 1939 of file objects.cc.

Here is the call graph for this function:

◆ WriteBoundedSizeField()

void v8::internal::HeapObject::WriteBoundedSizeField ( size_t offset,
size_t value )
inline

Definition at line 975 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteCodeEntrypointViaCodePointerField()

void v8::internal::HeapObject::WriteCodeEntrypointViaCodePointerField ( size_t offset,
Address value,
CodeEntrypointTag tag )
inline

Definition at line 1196 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteCodePointerField()

void v8::internal::HeapObject::WriteCodePointerField ( size_t offset,
Tagged< Code > value )
inline

Definition at line 1179 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteExternalPointerField()

template<ExternalPointerTag tag>
void v8::internal::HeapObject::WriteExternalPointerField ( size_t offset,
IsolateForSandbox isolate,
Address value )
inline

Definition at line 1010 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteField()

template<class T >
requires (std::is_arithmetic_v<T> || std::is_enum_v<T> || std::is_pointer_v<T>)
void v8::internal::HeapObject::WriteField ( size_t offset,
T value ) const
inline

Definition at line 247 of file heap-object.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ WriteLazilyInitializedCppHeapPointerField() [1/2]

template<CppHeapPointerTag tag>
void v8::internal::HeapObject::WriteLazilyInitializedCppHeapPointerField ( size_t offset,
IsolateForPointerCompression isolate,
Address value )
inline

Definition at line 1069 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteLazilyInitializedCppHeapPointerField() [2/2]

void v8::internal::HeapObject::WriteLazilyInitializedCppHeapPointerField ( size_t offset,
IsolateForPointerCompression isolate,
Address value,
CppHeapPointerTag tag )
inline

Definition at line 1075 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteLazilyInitializedExternalPointerField()

template<ExternalPointerTag tag>
void v8::internal::HeapObject::WriteLazilyInitializedExternalPointerField ( size_t offset,
IsolateForSandbox isolate,
Address value )
inline

Definition at line 1040 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteSandboxedPointerField() [1/2]

void v8::internal::HeapObject::WriteSandboxedPointerField ( size_t offset,
Isolate * isolate,
Address value )
inline

Definition at line 965 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteSandboxedPointerField() [2/2]

void v8::internal::HeapObject::WriteSandboxedPointerField ( size_t offset,
PtrComprCageBase cage_base,
Address value )
inline

Definition at line 959 of file objects-inl.h.

Here is the call graph for this function:

◆ WriteTrustedPointerField()

template<IndirectPointerTag tag>
void v8::internal::HeapObject::WriteTrustedPointerField ( size_t offset,
Tagged< ExposedTrustedObject > value )
inline

Definition at line 1126 of file objects-inl.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ Tagged< HeapObject >

friend class Tagged< HeapObject >
friend

Definition at line 501 of file heap-object.h.

Member Data Documentation

◆ kHeaderSize

int v8::internal::HeapObject::kHeaderSize = sizeof(HeapObjectLayout)
staticconstexpr

Definition at line 492 of file heap-object.h.

◆ kMapOffset

int v8::internal::HeapObject::kMapOffset = offsetof(HeapObjectLayout, map_)
staticconstexpr

Definition at line 491 of file heap-object.h.


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