v8  10.1.124 (node 18.2.0)
V8 is Google's open source JavaScript engine
HeapConsistency Class Referencefinal

#include <heap-consistency.h>

Public Types

using WriteBarrierParams = internal::WriteBarrier::Params
 
using WriteBarrierType = internal::WriteBarrier::Type
 

Static Public Member Functions

static V8_INLINE WriteBarrierType GetWriteBarrierType (const void *slot, const void *value, WriteBarrierParams &params)
 
template<typename HeapHandleCallback >
static V8_INLINE WriteBarrierType GetWriteBarrierType (const void *slot, WriteBarrierParams &params, HeapHandleCallback callback)
 
static V8_INLINE WriteBarrierType GetWriteBarrierType (const void *value, WriteBarrierParams &params)
 
static V8_INLINE void DijkstraWriteBarrier (const WriteBarrierParams &params, const void *object)
 
static V8_INLINE void DijkstraWriteBarrierRange (const WriteBarrierParams &params, const void *first_element, size_t element_size, size_t number_of_elements, TraceCallback trace_callback)
 
static V8_INLINE void SteeleWriteBarrier (const WriteBarrierParams &params, const void *object)
 
static V8_INLINE void GenerationalBarrier (const WriteBarrierParams &params, const void *slot)
 
static V8_INLINE void GenerationalBarrierForSourceObject (const WriteBarrierParams &params, const void *inner_pointer)
 

Detailed Description

DO NOT USE: Use the appropriate managed types.

Consistency helpers that aid in maintaining a consistent internal state of the garbage collector.

Definition at line 27 of file heap-consistency.h.

Member Typedef Documentation

◆ WriteBarrierParams

◆ WriteBarrierType

Member Function Documentation

◆ DijkstraWriteBarrier()

static V8_INLINE void DijkstraWriteBarrier ( const WriteBarrierParams params,
const void *  object 
)
inlinestatic

Conservative Dijkstra-style write barrier that processes an object if it has not yet been processed.

Parameters
paramsThe parameters retrieved from GetWriteBarrierType().
objectThe pointer to the object. May be an interior pointer to a an interface of the actual object.

Definition at line 96 of file heap-consistency.h.

References WriteBarrier::DijkstraMarkingBarrier().

◆ DijkstraWriteBarrierRange()

static V8_INLINE void DijkstraWriteBarrierRange ( const WriteBarrierParams params,
const void *  first_element,
size_t  element_size,
size_t  number_of_elements,
TraceCallback  trace_callback 
)
inlinestatic

Conservative Dijkstra-style write barrier that processes a range of elements if they have not yet been processed.

Parameters
paramsThe parameters retrieved from GetWriteBarrierType().
first_elementPointer to the first element that should be processed. The slot itself must reside in an object that has been allocated using MakeGarbageCollected().
element_sizeSize of the element in bytes.
number_of_elementsNumber of elements that should be processed, starting with first_element.
trace_callbackThe trace callback that should be invoked for each element if necessary.

Definition at line 115 of file heap-consistency.h.

References WriteBarrier::DijkstraMarkingBarrierRange().

◆ GenerationalBarrier()

static V8_INLINE void GenerationalBarrier ( const WriteBarrierParams params,
const void *  slot 
)
inlinestatic

Generational barrier for maintaining consistency when running with multiple generations.

Parameters
paramsThe parameters retrieved from GetWriteBarrierType().
slotSlot containing the pointer to the object. The slot itself must reside in an object that has been allocated using MakeGarbageCollected().

Definition at line 147 of file heap-consistency.h.

References WriteBarrier::GenerationalBarrier().

◆ GenerationalBarrierForSourceObject()

static V8_INLINE void GenerationalBarrierForSourceObject ( const WriteBarrierParams params,
const void *  inner_pointer 
)
inlinestatic

Generational barrier for source object that may contain outgoing pointers to objects in young generation.

Parameters
paramsThe parameters retrieved from GetWriteBarrierType().
inner_pointerPointer to the source object.

Definition at line 159 of file heap-consistency.h.

References WriteBarrier::GenerationalBarrierForSourceObject().

◆ GetWriteBarrierType() [1/3]

static V8_INLINE WriteBarrierType GetWriteBarrierType ( const void *  slot,
const void *  value,
WriteBarrierParams params 
)
inlinestatic

Gets the required write barrier type for a specific write.

Parameters
slotSlot containing the pointer to the object. The slot itself must reside in an object that has been allocated using MakeGarbageCollected().
valueThe pointer to the object. May be an interior pointer to an interface of the actual object.
paramsParameters that may be used for actual write barrier calls. Only filled if return value indicates that a write barrier is needed. The contents of the params are an implementation detail.
Returns
whether a write barrier is needed and which barrier to invoke.

Definition at line 45 of file heap-consistency.h.

References WriteBarrier::GetWriteBarrierType().

◆ GetWriteBarrierType() [2/3]

static V8_INLINE WriteBarrierType GetWriteBarrierType ( const void *  slot,
WriteBarrierParams params,
HeapHandleCallback  callback 
)
inlinestatic

Gets the required write barrier type for a specific write.

Parameters
slotSlot to some part of an object. The object must not necessarily have been allocated using MakeGarbageCollected() but can also live off-heap or on stack.
paramsParameters that may be used for actual write barrier calls. Only filled if return value indicates that a write barrier is needed. The contents of the params are an implementation detail.
callbackCallback returning the corresponding heap handle. The callback is only invoked if the heap cannot otherwise be figured out. The callback must not allocate.
Returns
whether a write barrier is needed and which barrier to invoke.

Definition at line 66 of file heap-consistency.h.

◆ GetWriteBarrierType() [3/3]

static V8_INLINE WriteBarrierType GetWriteBarrierType ( const void *  value,
WriteBarrierParams params 
)
inlinestatic

Gets the required write barrier type for a specific write. This version is meant to be used in conjunction with with a marking write barrier barrier which doesn't consider the slot.

Parameters
valueThe pointer to the object. May be an interior pointer to an interface of the actual object.
paramsParameters that may be used for actual write barrier calls. Only filled if return value indicates that a write barrier is needed. The contents of the params are an implementation detail.
Returns
whether a write barrier is needed and which barrier to invoke.

Definition at line 84 of file heap-consistency.h.

References WriteBarrier::GetWriteBarrierType().

◆ SteeleWriteBarrier()

static V8_INLINE void SteeleWriteBarrier ( const WriteBarrierParams params,
const void *  object 
)
inlinestatic

Steele-style write barrier that re-processes an object if it has already been processed.

Parameters
paramsThe parameters retrieved from GetWriteBarrierType().
objectThe pointer to the object which must point to an object that has been allocated using MakeGarbageCollected(). Interior pointers are not supported.

Definition at line 133 of file heap-consistency.h.

References WriteBarrier::SteeleMarkingBarrier().


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