5#ifndef INCLUDE_CPPGC_HEAP_CONSISTENCY_H_
6#define INCLUDE_CPPGC_HEAP_CONSISTENCY_H_
64 template <
typename HeapHandleCallback>
67 HeapHandleCallback callback) {
117 size_t element_size,
size_t number_of_elements,
120 params, first_element, element_size, number_of_elements,
134 const void*
object) {
192 static void Enter(HeapHandle& heap_handle);
200 static void Leave(HeapHandle& heap_handle);
217 HeapHandle& heap_handle_;
237 static void Enter(HeapHandle& heap_handle);
245 static void Leave(HeapHandle& heap_handle);
260 HeapHandle& heap_handle_;
static V8_INLINE void GenerationalBarrierForSourceObject(const Params ¶ms, const void *inner_pointer)
static V8_INLINE void DijkstraMarkingBarrier(const Params ¶ms, const void *object)
static V8_INLINE Type GetWriteBarrierType(const void *slot, const void *value, Params ¶ms)
static V8_INLINE void GenerationalBarrier(const Params ¶ms, const void *slot)
static V8_INLINE void SteeleMarkingBarrier(const Params ¶ms, const void *object)
static V8_INLINE void DijkstraMarkingBarrierRange(const Params ¶ms, const void *first_element, size_t element_size, size_t number_of_elements, TraceCallback trace_callback)
static void Enter(HeapHandle &heap_handle)
DisallowGarbageCollectionScope(const DisallowGarbageCollectionScope &)=delete
static bool IsGarbageCollectionAllowed(HeapHandle &heap_handle)
~DisallowGarbageCollectionScope()
DisallowGarbageCollectionScope(HeapHandle &heap_handle)
DisallowGarbageCollectionScope & operator=(const DisallowGarbageCollectionScope &)=delete
static void Leave(HeapHandle &heap_handle)
internal::WriteBarrier::Type WriteBarrierType
static V8_INLINE WriteBarrierType GetWriteBarrierType(const void *slot, const void *value, WriteBarrierParams ¶ms)
static V8_INLINE void GenerationalBarrier(const WriteBarrierParams ¶ms, const void *slot)
static V8_INLINE void SteeleWriteBarrier(const WriteBarrierParams ¶ms, const void *object)
static V8_INLINE WriteBarrierType GetWriteBarrierType(const void *value, WriteBarrierParams ¶ms)
static V8_INLINE void DijkstraWriteBarrier(const WriteBarrierParams ¶ms, const void *object)
static V8_INLINE WriteBarrierType GetWriteBarrierType(const void *slot, WriteBarrierParams ¶ms, HeapHandleCallback callback)
static V8_INLINE void GenerationalBarrierForSourceObject(const WriteBarrierParams ¶ms, const void *inner_pointer)
static V8_INLINE void DijkstraWriteBarrierRange(const WriteBarrierParams ¶ms, const void *first_element, size_t element_size, size_t number_of_elements, TraceCallback trace_callback)
NoGarbageCollectionScope & operator=(const NoGarbageCollectionScope &)=delete
static void Enter(HeapHandle &heap_handle)
~NoGarbageCollectionScope()
NoGarbageCollectionScope(const NoGarbageCollectionScope &)=delete
NoGarbageCollectionScope(HeapHandle &heap_handle)
static void Leave(HeapHandle &heap_handle)
#define CPPGC_STACK_ALLOCATED()
void(*)(Visitor *visitor, const void *object) TraceCallback