v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
cppgc::internal::ObjectStartBitmap Class Reference

#include <object-start-bitmap.h>

Inheritance diagram for cppgc::internal::ObjectStartBitmap:
Collaboration diagram for cppgc::internal::ObjectStartBitmap:

Public Member Functions

 ObjectStartBitmap ()
 
template<AccessMode = AccessMode::kNonAtomic>
HeapObjectHeaderFindHeader (ConstAddress address_maybe_pointing_to_the_middle_of_object) const
 
template<AccessMode = AccessMode::kNonAtomic>
void SetBit (ConstAddress)
 
template<AccessMode = AccessMode::kNonAtomic>
void ClearBit (ConstAddress)
 
template<AccessMode = AccessMode::kNonAtomic>
bool CheckBit (ConstAddress) const
 
template<typename Callback >
void Iterate (Callback) const
 
void Clear ()
 
void MarkAsFullyPopulated ()
 

Static Public Member Functions

static constexpr size_t Granularity ()
 
static constexpr size_t MaxEntries ()
 

Private Member Functions

template<AccessMode = AccessMode::kNonAtomic>
void store (size_t cell_index, uint8_t value)
 
template<AccessMode = AccessMode::kNonAtomic>
uint8_t load (size_t cell_index) const
 
void ObjectStartIndexAndBit (ConstAddress, size_t *, size_t *) const
 

Private Attributes

bool fully_populated_ = false
 
std::array< uint8_t, kReservedForBitmapobject_start_bit_map_
 

Static Private Attributes

static constexpr size_t kBitsPerCell = sizeof(uint8_t) * CHAR_BIT
 
static constexpr size_t kCellMask = kBitsPerCell - 1
 
static constexpr size_t kBitmapSize
 
static constexpr size_t kReservedForBitmap
 

Detailed Description

Definition at line 33 of file object-start-bitmap.h.

Constructor & Destructor Documentation

◆ ObjectStartBitmap()

cppgc::internal::ObjectStartBitmap::ObjectStartBitmap ( )
inline

Definition at line 107 of file object-start-bitmap.h.

Here is the call graph for this function:

Member Function Documentation

◆ CheckBit()

template<AccessMode mode>
bool cppgc::internal::ObjectStartBitmap::CheckBit ( ConstAddress header_address) const
inline

Definition at line 157 of file object-start-bitmap.h.

Here is the call graph for this function:

◆ Clear()

void cppgc::internal::ObjectStartBitmap::Clear ( )
inline

Definition at line 220 of file object-start-bitmap.h.

Here is the caller graph for this function:

◆ ClearBit()

template<AccessMode mode>
void cppgc::internal::ObjectStartBitmap::ClearBit ( ConstAddress header_address)
inline

Definition at line 149 of file object-start-bitmap.h.

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

◆ FindHeader()

template<AccessMode mode>
HeapObjectHeader * cppgc::internal::ObjectStartBitmap::FindHeader ( ConstAddress address_maybe_pointing_to_the_middle_of_object) const
inline

Definition at line 113 of file object-start-bitmap.h.

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

◆ Granularity()

static constexpr size_t cppgc::internal::ObjectStartBitmap::Granularity ( )
inlinestaticconstexpr

Definition at line 36 of file object-start-bitmap.h.

◆ Iterate()

template<typename Callback >
void cppgc::internal::ObjectStartBitmap::Iterate ( Callback callback) const
inline

Definition at line 195 of file object-start-bitmap.h.

Here is the call graph for this function:

◆ load()

template<AccessMode mode>
uint8_t cppgc::internal::ObjectStartBitmap::load ( size_t cell_index) const
inlineprivate

Definition at line 174 of file object-start-bitmap.h.

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

◆ MarkAsFullyPopulated()

void cppgc::internal::ObjectStartBitmap::MarkAsFullyPopulated ( )
inline

Definition at line 215 of file object-start-bitmap.h.

Here is the caller graph for this function:

◆ MaxEntries()

static constexpr size_t cppgc::internal::ObjectStartBitmap::MaxEntries ( )
inlinestaticconstexpr

Definition at line 39 of file object-start-bitmap.h.

◆ ObjectStartIndexAndBit()

void cppgc::internal::ObjectStartBitmap::ObjectStartIndexAndBit ( ConstAddress header_address,
size_t * cell_index,
size_t * bit ) const
inlineprivate

Definition at line 182 of file object-start-bitmap.h.

Here is the caller graph for this function:

◆ SetBit()

template<AccessMode mode>
void cppgc::internal::ObjectStartBitmap::SetBit ( ConstAddress header_address)
inline

Definition at line 140 of file object-start-bitmap.h.

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

◆ store()

template<AccessMode mode>
void cppgc::internal::ObjectStartBitmap::store ( size_t cell_index,
uint8_t value )
inlineprivate

Definition at line 164 of file object-start-bitmap.h.

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

Member Data Documentation

◆ fully_populated_

bool cppgc::internal::ObjectStartBitmap::fully_populated_ = false
private

Definition at line 101 of file object-start-bitmap.h.

◆ kBitmapSize

size_t cppgc::internal::ObjectStartBitmap::kBitmapSize
staticconstexprprivate
Initial value:
=
constexpr size_t kPageSize
Definition globals.h:42
constexpr size_t kAllocationGranularity
Definition globals.h:37

Definition at line 83 of file object-start-bitmap.h.

◆ kBitsPerCell

size_t cppgc::internal::ObjectStartBitmap::kBitsPerCell = sizeof(uint8_t) * CHAR_BIT
staticconstexprprivate

Definition at line 81 of file object-start-bitmap.h.

◆ kCellMask

size_t cppgc::internal::ObjectStartBitmap::kCellMask = kBitsPerCell - 1
staticconstexprprivate

Definition at line 82 of file object-start-bitmap.h.

◆ kReservedForBitmap

size_t cppgc::internal::ObjectStartBitmap::kReservedForBitmap
staticconstexprprivate
Initial value:
=
((kBitmapSize + kAllocationMask) & ~kAllocationMask)
constexpr size_t kAllocationMask
Definition globals.h:39

Definition at line 86 of file object-start-bitmap.h.

◆ object_start_bit_map_

std::array<uint8_t, kReservedForBitmap> cppgc::internal::ObjectStartBitmap::object_start_bit_map_
private

Definition at line 104 of file object-start-bitmap.h.


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