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

#include <heap-page.h>

Inheritance diagram for cppgc::internal::NormalPage:
Collaboration diagram for cppgc::internal::NormalPage:

Classes

class  IteratorImpl
 

Public Types

using iterator = IteratorImpl<HeapObjectHeader>
 
using const_iterator = IteratorImpl<const HeapObjectHeader>
 

Public Member Functions

iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
Address PayloadStart ()
 
ConstAddress PayloadStart () const
 
Address PayloadEnd ()
 
ConstAddress PayloadEnd () const
 
bool PayloadContains (ConstAddress address) const
 
size_t AllocatedBytesAtLastGC () const
 
void SetAllocatedBytesAtLastGC (size_t bytes)
 
PlatformAwareObjectStartBitmapobject_start_bitmap ()
 
const PlatformAwareObjectStartBitmapobject_start_bitmap () const
 
- Public Member Functions inherited from cppgc::internal::BasePage
 BasePage (const BasePage &)=delete
 
BasePageoperator= (const BasePage &)=delete
 
HeapBaseheap () const
 
BaseSpacespace () const
 
bool is_large () const
 
Address PayloadStart ()
 
ConstAddress PayloadStart () const
 
Address PayloadEnd ()
 
ConstAddress PayloadEnd () const
 
size_t AllocatedSize () const
 
size_t AllocatedBytesAtLastGC () const
 
template<AccessMode = AccessMode::kNonAtomic>
HeapObjectHeaderObjectHeaderFromInnerAddress (void *address) const
 
template<AccessMode = AccessMode::kNonAtomic>
const HeapObjectHeaderObjectHeaderFromInnerAddress (const void *address) const
 
HeapObjectHeaderTryObjectHeaderFromInnerAddress (void *address) const
 
const HeapObjectHeaderTryObjectHeaderFromInnerAddress (const void *address) const
 
void SynchronizedLoad () const
 
void SynchronizedStore ()
 
void IncrementDiscardedMemory (size_t value)
 
void ResetDiscardedMemory ()
 
size_t discarded_memory () const
 
void IncrementMarkedBytes (size_t value)
 
void DecrementMarkedBytes (size_t value)
 
void ResetMarkedBytes (size_t new_value=0)
 
size_t marked_bytes () const
 
bool contains_young_objects () const
 
void set_as_containing_young_objects (bool value)
 
void ChangeOwner (BaseSpace &)
 
- Public Member Functions inherited from cppgc::internal::BasePageHandle
HeapHandleheap_handle ()
 
const HeapHandleheap_handle () const
 

Static Public Member Functions

static NormalPageTryCreate (PageBackend &, NormalPageSpace &)
 
static void Destroy (NormalPage *)
 
static NormalPageFrom (BasePage *page)
 
static const NormalPageFrom (const BasePage *page)
 
static constexpr size_t PayloadSize ()
 
- Static Public Member Functions inherited from cppgc::internal::BasePage
static BasePageFromPayload (void *)
 
static const BasePageFromPayload (const void *)
 
static BasePageFromInnerAddress (const HeapBase *, void *)
 
static const BasePageFromInnerAddress (const HeapBase *, const void *)
 
static void Destroy (BasePage *)
 
- Static Public Member Functions inherited from cppgc::internal::BasePageHandle
static V8_INLINE BasePageHandleFromPayload (void *payload)
 
static V8_INLINE const BasePageHandleFromPayload (const void *payload)
 

Private Member Functions

 NormalPage (HeapBase &heap, BaseSpace &space)
 
 ~NormalPage ()=default
 

Private Attributes

size_t allocated_bytes_at_last_gc_ = 0
 
PlatformAwareObjectStartBitmap object_start_bitmap_
 

Additional Inherited Members

- Protected Types inherited from cppgc::internal::BasePage
enum class  PageType : uint8_t { kNormal , kLarge }
 
- Protected Member Functions inherited from cppgc::internal::BasePage
 BasePage (HeapBase &, BaseSpace &, PageType)
 
- Protected Member Functions inherited from cppgc::internal::BasePageHandle
 BasePageHandle (HeapHandle &heap_handle)
 
- Protected Attributes inherited from cppgc::internal::BasePageHandle
HeapHandleheap_handle_
 

Detailed Description

Definition at line 152 of file heap-page.h.

Member Typedef Documentation

◆ const_iterator

◆ iterator

Constructor & Destructor Documentation

◆ NormalPage()

cppgc::internal::NormalPage::NormalPage ( HeapBase & heap,
BaseSpace & space )
private

Definition at line 207 of file heap-page.cc.

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

◆ ~NormalPage()

cppgc::internal::NormalPage::~NormalPage ( )
privatedefault

Member Function Documentation

◆ AllocatedBytesAtLastGC()

size_t cppgc::internal::NormalPage::AllocatedBytesAtLastGC ( ) const
inline

Definition at line 235 of file heap-page.h.

Here is the caller graph for this function:

◆ begin() [1/2]

NormalPage::iterator cppgc::internal::NormalPage::begin ( )

Definition at line 213 of file heap-page.cc.

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

◆ begin() [2/2]

NormalPage::const_iterator cppgc::internal::NormalPage::begin ( ) const

Definition at line 219 of file heap-page.cc.

Here is the call graph for this function:

◆ Destroy()

void cppgc::internal::NormalPage::Destroy ( NormalPage * page)
static

Definition at line 195 of file heap-page.cc.

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

◆ end() [1/2]

iterator cppgc::internal::NormalPage::end ( )
inline

Definition at line 216 of file heap-page.h.

◆ end() [2/2]

const_iterator cppgc::internal::NormalPage::end ( ) const
inline

Definition at line 219 of file heap-page.h.

◆ From() [1/2]

static NormalPage * cppgc::internal::NormalPage::From ( BasePage * page)
inlinestatic

Definition at line 205 of file heap-page.h.

Here is the caller graph for this function:

◆ From() [2/2]

static const NormalPage * cppgc::internal::NormalPage::From ( const BasePage * page)
inlinestatic

Definition at line 209 of file heap-page.h.

◆ object_start_bitmap() [1/2]

PlatformAwareObjectStartBitmap & cppgc::internal::NormalPage::object_start_bitmap ( )
inline

Definition at line 241 of file heap-page.h.

Here is the caller graph for this function:

◆ object_start_bitmap() [2/2]

const PlatformAwareObjectStartBitmap & cppgc::internal::NormalPage::object_start_bitmap ( ) const
inline

Definition at line 244 of file heap-page.h.

◆ PayloadContains()

bool cppgc::internal::NormalPage::PayloadContains ( ConstAddress address) const
inline

Definition at line 231 of file heap-page.h.

Here is the caller graph for this function:

◆ PayloadEnd() [1/2]

Address cppgc::internal::NormalPage::PayloadEnd ( )

Definition at line 235 of file heap-page.cc.

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

◆ PayloadEnd() [2/2]

ConstAddress cppgc::internal::NormalPage::PayloadEnd ( ) const

Definition at line 237 of file heap-page.cc.

Here is the call graph for this function:

◆ PayloadSize()

size_t cppgc::internal::NormalPage::PayloadSize ( )
inlinestaticconstexpr

Definition at line 368 of file heap-page.h.

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

◆ PayloadStart() [1/2]

Address cppgc::internal::NormalPage::PayloadStart ( )

Definition at line 226 of file heap-page.cc.

Here is the caller graph for this function:

◆ PayloadStart() [2/2]

ConstAddress cppgc::internal::NormalPage::PayloadStart ( ) const

Definition at line 231 of file heap-page.cc.

Here is the call graph for this function:

◆ SetAllocatedBytesAtLastGC()

void cppgc::internal::NormalPage::SetAllocatedBytesAtLastGC ( size_t bytes)
inline

Definition at line 237 of file heap-page.h.

◆ TryCreate()

NormalPage * cppgc::internal::NormalPage::TryCreate ( PageBackend & page_backend,
NormalPageSpace & space )
static

Definition at line 164 of file heap-page.cc.

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

Member Data Documentation

◆ allocated_bytes_at_last_gc_

size_t cppgc::internal::NormalPage::allocated_bytes_at_last_gc_ = 0
private

Definition at line 252 of file heap-page.h.

◆ object_start_bitmap_

PlatformAwareObjectStartBitmap cppgc::internal::NormalPage::object_start_bitmap_
private

Definition at line 253 of file heap-page.h.


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