5#ifndef V8_OBJECTS_EMBEDDER_DATA_SLOT_INL_H_
6#define V8_OBJECTS_EMBEDDER_DATA_SLOT_INL_H_
32 int embedder_field_index)
34 object, object->GetEmbedderFieldOffset(embedder_field_index))) {}
42#ifdef V8_COMPRESS_POINTERS
53#ifdef V8_COMPRESS_POINTERS
62#ifdef V8_COMPRESS_POINTERS
71#ifdef V8_COMPRESS_POINTERS
80 int embedder_field_index,
82#ifdef V8_COMPRESS_POINTERS
87 int slot_offset =
object->GetEmbedderFieldOffset(embedder_field_index);
91#ifdef V8_COMPRESS_POINTERS
99 void** out_pointer)
const {
104#ifdef V8_ENABLE_SANDBOX
106 *out_pointer =
reinterpret_cast<void*
>(
121 *out_pointer =
reinterpret_cast<void*
>(raw_value);
131#ifdef V8_ENABLE_SANDBOX
158#ifdef V8_COMPRESS_POINTERS
176#ifdef V8_COMPRESS_POINTERS
209#ifdef V8_ENABLE_SANDBOX
static void Relaxed_Store(T *addr, typename std::remove_reference< T >::type new_value)
static T Relaxed_Load(T *addr)
static constexpr int OffsetOfElementAt(int index)
V8_INLINE void store_raw(IsolateForSandbox isolate, RawData data, const DisallowGarbageCollection &no_gc)
V8_INLINE void store_smi(Tagged< Smi > value)
V8_INLINE Tagged< Object > load_tagged() const
V8_INLINE V8_WARN_UNUSED_RESULT bool store_aligned_pointer(IsolateForSandbox isolate, Tagged< HeapObject > host, void *ptr)
static constexpr int kTaggedPayloadOffset
V8_INLINE bool ToAlignedPointer(IsolateForSandbox isolate, void **out_result) const
V8_INLINE void gc_safe_store(IsolateForSandbox isolate, Address value)
static constexpr int kExternalPointerOffset
V8_INLINE bool MustClearDuringSerialization(const DisallowGarbageCollection &no_gc)
static V8_INLINE void store_tagged(Tagged< EmbedderDataArray > array, int entry_index, Tagged< Object > value)
V8_INLINE void Initialize(Tagged< Object > initial_value)
V8_INLINE RawData load_raw(IsolateForSandbox isolate, const DisallowGarbageCollection &no_gc) const
void Relaxed_Store(Tagged< Object > value) const
Tagged< Object > Relaxed_Load() const
static V8_EXPORT_PRIVATE bool Contains(Address address)
static constexpr Tagged< Smi > zero()
static V8_INLINE constexpr Address GetPtrComprCageBaseAddress(Address on_heap_addr)
#define COMPRESS_POINTERS_BOOL
#define HAS_SMI_TAG(value)
static V ReadUnalignedValue(Address p)
constexpr int kTaggedSize
SlotTraits::TObjectSlot ObjectSlot
V8_INLINE constexpr bool IsSmi(TaggedImpl< kRefType, StorageType > obj)
V8_INLINE Address ReadExternalPointerField(Address field_address, IsolateForSandbox isolate)
constexpr ExternalPointerHandle kNullExternalPointerHandle
constexpr bool SmiValuesAre31Bits()
@ kEmbedderDataSlotPayloadTag
base::AtomicWord AtomicTagged_t
uint32_t ExternalPointerHandle
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define FIELD_ADDR(p, offset)
#define WRITE_BARRIER(object, offset, value)
#define DCHECK(condition)