v8  9.4.146 (node 16.13.0)
V8 is Google's open source JavaScript engine
WriteBarrier Class Referencefinal

#include <write-barrier.h>

Data Structures

struct  Params
 

Public Types

enum class  Type : uint8_t { kNone , kMarking , kGenerational }
 
enum class  ValueMode { kValuePresent , kNoValuePresent }
 

Public Member Functions

template<typename HeapHandleCallback >
WriteBarrier::Type GetWriteBarrierType (const void *slot, WriteBarrier::Params &params, HeapHandleCallback callback)
 
template<typename HeapHandleCallback >
WriteBarrier::Type GetWriteBarrierTypeForExternallyReferencedObject (const void *value, Params &params, HeapHandleCallback callback)
 

Static Public Member Functions

static V8_INLINE Type GetWriteBarrierType (const void *slot, const void *value, Params &params)
 
template<typename HeapHandleCallback >
static V8_INLINE Type GetWriteBarrierType (const void *slot, Params &params, HeapHandleCallback callback)
 
template<typename HeapHandleCallback >
static V8_INLINE Type GetWriteBarrierTypeForExternallyReferencedObject (const void *value, Params &params, HeapHandleCallback callback)
 
static V8_INLINE void DijkstraMarkingBarrier (const Params &params, const void *object)
 
static V8_INLINE void DijkstraMarkingBarrierRange (const Params &params, const void *first_element, size_t element_size, size_t number_of_elements, TraceCallback trace_callback)
 
static V8_INLINE void SteeleMarkingBarrier (const Params &params, const void *object)
 
static V8_INLINE void GenerationalBarrier (const Params &params, const void *slot)
 
static void CheckParams (Type expected_type, const Params &params)
 
static bool IsAnyIncrementalOrConcurrentMarking ()
 

Detailed Description

Definition at line 35 of file write-barrier.h.

Member Enumeration Documentation

◆ Type

enum Type : uint8_t
strong
Enumerator
kNone 
kMarking 
kGenerational 

Definition at line 37 of file write-barrier.h.

◆ ValueMode

enum ValueMode
strong
Enumerator
kValuePresent 
kNoValuePresent 

Definition at line 58 of file write-barrier.h.

Member Function Documentation

◆ CheckParams()

static void CheckParams ( Type  expected_type,
const Params params 
)
inlinestatic

◆ DijkstraMarkingBarrier()

void DijkstraMarkingBarrier ( const Params params,
const void *  object 
)
static

◆ DijkstraMarkingBarrierRange()

void DijkstraMarkingBarrierRange ( const Params params,
const void *  first_element,
size_t  element_size,
size_t  number_of_elements,
TraceCallback  trace_callback 
)
static

◆ GenerationalBarrier()

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

◆ GetWriteBarrierType() [1/3]

WriteBarrier::Type GetWriteBarrierType ( const void *  slot,
const void *  value,
WriteBarrier::Params params 
)
static

◆ GetWriteBarrierType() [2/3]

static V8_INLINE Type GetWriteBarrierType ( const void *  slot,
Params params,
HeapHandleCallback  callback 
)
static

◆ GetWriteBarrierType() [3/3]

WriteBarrier::Type GetWriteBarrierType ( const void *  slot,
WriteBarrier::Params params,
HeapHandleCallback  callback 
)

Definition at line 338 of file write-barrier.h.

References WriteBarrier::kNoValuePresent.

◆ GetWriteBarrierTypeForExternallyReferencedObject() [1/2]

static V8_INLINE Type GetWriteBarrierTypeForExternallyReferencedObject ( const void *  value,
Params params,
HeapHandleCallback  callback 
)
static

◆ GetWriteBarrierTypeForExternallyReferencedObject() [2/2]

WriteBarrier::Type GetWriteBarrierTypeForExternallyReferencedObject ( const void *  value,
Params params,
HeapHandleCallback  callback 
)

Definition at line 348 of file write-barrier.h.

◆ IsAnyIncrementalOrConcurrentMarking()

◆ SteeleMarkingBarrier()

void SteeleMarkingBarrier ( const Params params,
const void *  object 
)
static

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