v8 12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
WriteBarrier Class Referencefinal

#include <write-barrier.h>

Data Structures

struct  Params
 

Public Types

enum class  Type : uint8_t { kNone , kMarking , kGenerational }
 
enum class  GenerationalBarrierType : uint8_t { kPreciseSlot , kPreciseUncompressedSlot , kImpreciseSlot }
 
enum class  ValueMode { kValuePresent , kNoValuePresent }
 

Public Member Functions

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

Static Public Member Functions

static V8_INLINE Type GetWriteBarrierType (const void *slot, const void *value, Params &params)
 
template<typename MemberStorage >
static V8_INLINE Type GetWriteBarrierType (const void *slot, MemberStorage, Params &params)
 
template<typename HeapHandleCallback >
static V8_INLINE Type GetWriteBarrierType (const void *slot, Params &params, HeapHandleCallback callback)
 
static V8_INLINE Type GetWriteBarrierType (const void *value, Params &params)
 
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)
 
template<GenerationalBarrierType >
static V8_INLINE void GenerationalBarrier (const Params &params, const void *slot)
 
static void CheckParams (Type expected_type, const Params &params)
 
static bool IsEnabled ()
 

Detailed Description

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

Member Enumeration Documentation

◆ GenerationalBarrierType

enum class GenerationalBarrierType : uint8_t
strong
Enumerator
kPreciseSlot 
kPreciseUncompressedSlot 
kImpreciseSlot 

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

◆ Type

enum class Type : uint8_t
strong
Enumerator
kNone 
kMarking 
kGenerational 

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

◆ ValueMode

enum class ValueMode
strong
Enumerator
kValuePresent 
kNoValuePresent 

Definition at line 64 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/6]

◆ GetWriteBarrierType() [2/6]

template<typename MemberStorage >
WriteBarrier::Type GetWriteBarrierType ( const void *  slot,
MemberStorage  value,
WriteBarrier::Params params 
)

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

◆ GetWriteBarrierType() [3/6]

template<typename MemberStorage >
static V8_INLINE Type GetWriteBarrierType ( const void *  slot,
MemberStorage  ,
Params params 
)
static

◆ GetWriteBarrierType() [4/6]

template<typename HeapHandleCallback >
static V8_INLINE Type GetWriteBarrierType ( const void *  slot,
Params params,
HeapHandleCallback  callback 
)
static

◆ GetWriteBarrierType() [5/6]

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

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

◆ GetWriteBarrierType() [6/6]

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

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

◆ IsEnabled()

◆ SteeleMarkingBarrier()

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

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