5#ifndef INCLUDE_CPPGC_HEAP_CONSISTENCY_H_
6#define INCLUDE_CPPGC_HEAP_CONSISTENCY_H_
64 template <
typename T,
typename WeaknessTag,
typename WriteBarrierPolicy,
65 typename CheckingPolicy,
typename StorageType>
68 CheckingPolicy, StorageType>& value,
71 value.GetRawSlot(), value.GetRawStorage(), params);
88 template <
typename HeapHandleCallback>
91 HeapHandleCallback callback) {
121 const void*
object) {
141 size_t element_size,
size_t number_of_elements,
144 params, first_element, element_size, number_of_elements,
158 const void*
object) {
190 internal::WriteBarrier::GenerationalBarrierType::
191 kPreciseUncompressedSlot>(params, uncompressed_slot);
205 params, inner_pointer);
Definition: heap-handle.h:21
Type
Definition: write-barrier.h:41
static Type GetWriteBarrierType(const void *slot, const void *value, Params ¶ms)
Definition: write-barrier.h:388
static void DijkstraMarkingBarrierRange(const Params ¶ms, const void *first_element, size_t element_size, size_t number_of_elements, TraceCallback trace_callback)
Definition: write-barrier.h:431
static void GenerationalBarrier(const Params ¶ms, const void *slot)
Definition: write-barrier.h:105
static void SteeleMarkingBarrier(const Params ¶ms, const void *object)
Definition: write-barrier.h:442
static void DijkstraMarkingBarrier(const Params ¶ms, const void *object)
Definition: write-barrier.h:419
Definition: heap-consistency.h:220
DisallowGarbageCollectionScope(HeapHandle &heap_handle)
static bool IsGarbageCollectionAllowed(HeapHandle &heap_handle)
static void Leave(HeapHandle &heap_handle)
DisallowGarbageCollectionScope(const DisallowGarbageCollectionScope &)=delete
DisallowGarbageCollectionScope & operator=(const DisallowGarbageCollectionScope &)=delete
static void Enter(HeapHandle &heap_handle)
~DisallowGarbageCollectionScope()
Definition: heap-consistency.h:28
static WriteBarrierType GetWriteBarrierType(const internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &value, WriteBarrierParams ¶ms)
Definition: heap-consistency.h:66
static void DijkstraWriteBarrierRange(const WriteBarrierParams ¶ms, const void *first_element, size_t element_size, size_t number_of_elements, TraceCallback trace_callback)
Definition: heap-consistency.h:139
static void GenerationalBarrier(const WriteBarrierParams ¶ms, const void *slot)
Definition: heap-consistency.h:171
static void GenerationalBarrierForUncompressedSlot(const WriteBarrierParams ¶ms, const void *uncompressed_slot)
Definition: heap-consistency.h:187
static WriteBarrierType GetWriteBarrierType(const void *value, WriteBarrierParams ¶ms)
Definition: heap-consistency.h:108
static WriteBarrierType GetWriteBarrierType(const void *slot, WriteBarrierParams ¶ms, HeapHandleCallback callback)
Definition: heap-consistency.h:90
static void GenerationalBarrierForSourceObject(const WriteBarrierParams ¶ms, const void *inner_pointer)
Definition: heap-consistency.h:201
internal::WriteBarrier::Type WriteBarrierType
Definition: heap-consistency.h:31
static void DijkstraWriteBarrier(const WriteBarrierParams ¶ms, const void *object)
Definition: heap-consistency.h:120
static WriteBarrierType GetWriteBarrierType(const void *slot, const void *value, WriteBarrierParams ¶ms)
Definition: heap-consistency.h:46
static void SteeleWriteBarrier(const WriteBarrierParams ¶ms, const void *object)
Definition: heap-consistency.h:157
Definition: heap-consistency.h:270
NoGarbageCollectionScope & operator=(const NoGarbageCollectionScope &)=delete
static void Leave(HeapHandle &heap_handle)
static void Enter(HeapHandle &heap_handle)
NoGarbageCollectionScope(const NoGarbageCollectionScope &)=delete
NoGarbageCollectionScope(HeapHandle &heap_handle)
~NoGarbageCollectionScope()
#define CPPGC_STACK_ALLOCATED()
Definition: macros.h:29
Definition: allocation.h:38
void(*)(Visitor *visitor, const void *object) TraceCallback
Definition: trace-trait.h:38
Definition: write-barrier.h:53
#define V8_EXPORT
Definition: v8config.h:793
#define V8_INLINE
Definition: v8config.h:499
#define V8_NODISCARD
Definition: v8config.h:682