V8 Project
v8::internal::MarkBit Class Reference

#include <spaces.h>

+ Collaboration diagram for v8::internal::MarkBit:

Public Types

typedef uint32_t CellType
 

Public Member Functions

 MarkBit (CellType *cell, CellType mask, bool data_only)
 
CellTypecell ()
 
CellType mask ()
 
void Set ()
 
bool Get ()
 
void Clear ()
 
bool data_only ()
 
MarkBit Next ()
 

Private Attributes

CellTypecell_
 
CellType mask_
 
bool data_only_
 

Detailed Description

Definition at line 101 of file spaces.h.

Member Typedef Documentation

◆ CellType

Definition at line 103 of file spaces.h.

Constructor & Destructor Documentation

◆ MarkBit()

v8::internal::MarkBit::MarkBit ( CellType cell,
CellType  mask,
bool  data_only 
)
inline

Definition at line 105 of file spaces.h.

CellType * cell_
Definition: spaces.h:133
CellType mask()
Definition: spaces.h:109
CellType * cell()
Definition: spaces.h:108

Referenced by Next().

+ Here is the caller graph for this function:

Member Function Documentation

◆ cell()

CellType* v8::internal::MarkBit::cell ( )
inline

Definition at line 108 of file spaces.h.

108 { return cell_; }

References cell_.

Referenced by v8::internal::SetMarkBitsUnderInvalidatedCode().

+ Here is the caller graph for this function:

◆ Clear()

void v8::internal::MarkBit::Clear ( )
inline

Definition at line 119 of file spaces.h.

119 { *cell_ &= ~mask_; }

References cell_, and mask_.

Referenced by v8::internal::MarkCompactCollector::ClearMarkbits(), v8::internal::LargeObjectSpace::FreeUnmarkedObjects(), v8::internal::Marking::INLINE(), and v8::internal::Marking::TransferMark().

+ Here is the caller graph for this function:

◆ data_only()

bool v8::internal::MarkBit::data_only ( )
inline

Definition at line 121 of file spaces.h.

121 { return data_only_; }

References data_only_.

Referenced by v8::internal::IncrementalMarkingMarkingVisitor::INLINE(), and v8::internal::IncrementalMarkingRootMarkingVisitor::MarkObjectByPointer().

+ Here is the caller graph for this function:

◆ Get()

◆ mask()

CellType v8::internal::MarkBit::mask ( )
inline

Definition at line 109 of file spaces.h.

109 { return mask_; }

References mask_.

Referenced by v8::internal::SetMarkBitsUnderInvalidatedCode().

+ Here is the caller graph for this function:

◆ Next()

MarkBit v8::internal::MarkBit::Next ( )
inline

Definition at line 123 of file spaces.h.

123  {
124  CellType new_mask = mask_ << 1;
125  if (new_mask == 0) {
126  return MarkBit(cell_ + 1, 1, data_only_);
127  } else {
128  return MarkBit(cell_, new_mask, data_only_);
129  }
130  }
uint32_t CellType
Definition: spaces.h:103
MarkBit(CellType *cell, CellType mask, bool data_only)
Definition: spaces.h:105

References cell_, data_only_, MarkBit(), and mask_.

Referenced by v8::internal::MarkCompactCollector::ClearMarkbits(), v8::internal::Marking::INLINE(), and v8::internal::Marking::TransferMark().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Set()

void v8::internal::MarkBit::Set ( )
inline

Definition at line 117 of file spaces.h.

117 { *cell_ |= mask_; }

References cell_, and mask_.

Referenced by v8::internal::IncrementalMarkingMarkingVisitor::INLINE(), v8::internal::Marking::INLINE(), v8::internal::MarkBlackOrKeepGrey(), and v8::internal::UnreachableObjectsFilter::MarkingVisitor::VisitPointers().

+ Here is the caller graph for this function:

Member Data Documentation

◆ cell_

CellType* v8::internal::MarkBit::cell_
private

Definition at line 133 of file spaces.h.

Referenced by cell(), Clear(), Get(), Next(), and Set().

◆ data_only_

bool v8::internal::MarkBit::data_only_
private

Definition at line 139 of file spaces.h.

Referenced by data_only(), and Next().

◆ mask_

CellType v8::internal::MarkBit::mask_
private

Definition at line 134 of file spaces.h.

Referenced by Clear(), Get(), mask(), Next(), and Set().


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