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>
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);
227 static bool IsGarbageCollectionAllowed(
HeapHandle& heap_handle);
static V8_INLINE Type GetWriteBarrierType(const void *slot, const void *value, Params ¶ms)
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 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 DijkstraMarkingBarrier(const Params ¶ms, const void *object)
DisallowGarbageCollectionScope(const DisallowGarbageCollectionScope &)=delete
DisallowGarbageCollectionScope & operator=(const DisallowGarbageCollectionScope &)=delete
HeapHandle & heap_handle_
static V8_INLINE void GenerationalBarrierForSourceObject(const WriteBarrierParams ¶ms, const void *inner_pointer)
static V8_INLINE WriteBarrierType GetWriteBarrierType(const void *slot, WriteBarrierParams ¶ms, HeapHandleCallback callback)
static V8_INLINE WriteBarrierType GetWriteBarrierType(const void *value, WriteBarrierParams ¶ms)
static V8_INLINE WriteBarrierType GetWriteBarrierType(const internal::BasicMember< T, WeaknessTag, WriteBarrierPolicy, CheckingPolicy, StorageType > &value, WriteBarrierParams ¶ms)
static V8_INLINE WriteBarrierType GetWriteBarrierType(const void *slot, const void *value, WriteBarrierParams ¶ms)
static V8_INLINE void GenerationalBarrierForUncompressedSlot(const WriteBarrierParams ¶ms, const void *uncompressed_slot)
static V8_INLINE void SteeleWriteBarrier(const WriteBarrierParams ¶ms, const void *object)
internal::WriteBarrier::Type WriteBarrierType
static V8_INLINE void DijkstraWriteBarrierRange(const WriteBarrierParams ¶ms, const void *first_element, size_t element_size, size_t number_of_elements, TraceCallback trace_callback)
static V8_INLINE void GenerationalBarrier(const WriteBarrierParams ¶ms, const void *slot)
static V8_INLINE void DijkstraWriteBarrier(const WriteBarrierParams ¶ms, const void *object)
NoGarbageCollectionScope & operator=(const NoGarbageCollectionScope &)=delete
NoGarbageCollectionScope(const NoGarbageCollectionScope &)=delete
HeapHandle & heap_handle_
void(*)(Visitor *visitor, const void *object) TraceCallback