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

#include <large-spaces.h>

Inheritance diagram for v8::internal::OldLargeObjectSpace:
Collaboration diagram for v8::internal::OldLargeObjectSpace:

Public Member Functions

V8_EXPORT_PRIVATE OldLargeObjectSpace (Heap *heap)
 
V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT AllocationResult AllocateRaw (LocalHeap *local_heap, int object_size)
 
void PromoteNewLargeObject (LargePageMetadata *page)
 
- Public Member Functions inherited from v8::internal::LargeObjectSpace
 ~LargeObjectSpace () override
 
void TearDown ()
 
size_t Available () const override
 
size_t Size () const override
 
size_t SizeOfObjects () const override
 
size_t CommittedPhysicalMemory () const override
 
int PageCount () const
 
void ShrinkPageToObjectSize (LargePageMetadata *page, Tagged< HeapObject > object, size_t object_size)
 
bool Contains (Tagged< HeapObject > obj) const
 
bool ContainsSlow (Address addr) const
 
bool IsEmpty () const
 
virtual void AddPage (LargePageMetadata *page, size_t object_size)
 
virtual void RemovePage (LargePageMetadata *page)
 
LargePageMetadatafirst_page () override
 
const LargePageMetadatafirst_page () const override
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
std::unique_ptr< ObjectIteratorGetObjectIterator (Heap *heap) override
 
void AddAllocationObserver (AllocationObserver *observer)
 
void RemoveAllocationObserver (AllocationObserver *observer)
 
Address pending_object () const
 
void ResetPendingObject ()
 
base::Mutexpending_allocation_mutex ()
 
void set_objects_size (size_t objects_size)
 
- Public Member Functions inherited from v8::internal::Space
 Space (Heap *heap, AllocationSpace id, std::unique_ptr< FreeList > free_list)
 
 ~Space () override=default
 
 Space (const Space &)=delete
 
Spaceoperator= (const Space &)=delete
 
void IncrementExternalBackingStoreBytes (ExternalBackingStoreType type, size_t amount)
 
void DecrementExternalBackingStoreBytes (ExternalBackingStoreType type, size_t amount)
 
virtual size_t ExternalBackingStoreBytes (ExternalBackingStoreType type) const
 
virtual MutablePageMetadatalast_page ()
 
virtual const MutablePageMetadatalast_page () const
 
virtual heap::List< MutablePageMetadata > & memory_chunk_list ()
 
virtual PageMetadataInitializePage (MutablePageMetadata *chunk)
 
virtual void NotifyBlackAreaCreated (size_t size)
 
virtual void NotifyBlackAreaDestroyed (size_t size)
 
FreeListfree_list ()
 
Address FirstPageAddress () const
 
- Public Member Functions inherited from v8::internal::BaseSpace
 BaseSpace (const BaseSpace &)=delete
 
BaseSpaceoperator= (const BaseSpace &)=delete
 
Heapheap () const
 
AllocationSpace identity () const
 
virtual size_t CommittedMemory () const
 
virtual size_t MaximumCommittedMemory () const
 

Protected Member Functions

 OldLargeObjectSpace (Heap *heap, AllocationSpace id)
 
V8_WARN_UNUSED_RESULT AllocationResult AllocateRaw (LocalHeap *local_heap, int object_size, Executability executable)
 
- Protected Member Functions inherited from v8::internal::LargeObjectSpace
 LargeObjectSpace (Heap *heap, AllocationSpace id)
 
void AdvanceAndInvokeAllocationObservers (Address soon_object, size_t size)
 
LargePageMetadataAllocateLargePage (int object_size, Executability executable)
 
void UpdatePendingObject (Tagged< HeapObject > object)
 
- Protected Member Functions inherited from v8::internal::BaseSpace
 BaseSpace (Heap *heap, AllocationSpace id)
 
virtual ~BaseSpace ()=default
 
void AccountCommitted (size_t bytes)
 
void AccountUncommitted (size_t bytes)
 

Additional Inherited Members

- Public Types inherited from v8::internal::LargeObjectSpace
using iterator = LargePageIterator
 
using const_iterator = ConstLargePageIterator
 
- Static Public Member Functions inherited from v8::internal::Space
static void MoveExternalBackingStoreBytes (ExternalBackingStoreType type, Space *from, Space *to, size_t amount)
 
- Static Public Member Functions inherited from v8::internal::Malloced
static void * operator new (size_t size)
 
static void operator delete (void *p)
 
- Protected Attributes inherited from v8::internal::LargeObjectSpace
std::atomic< size_tsize_
 
int page_count_
 
std::atomic< size_tobjects_size_
 
base::RecursiveMutex allocation_mutex_
 
std::atomic< Addresspending_object_
 
base::Mutex pending_allocation_mutex_
 
AllocationCounter allocation_counter_
 
- Protected Attributes inherited from v8::internal::Space
heap::List< MutablePageMetadatamemory_chunk_list_
 
std::atomic< size_texternal_backing_store_bytes_ [static_cast< int >(ExternalBackingStoreType::kNumValues)] = {0}
 
std::unique_ptr< FreeListfree_list_
 
- Protected Attributes inherited from v8::internal::BaseSpace
Heapheap_
 
AllocationSpace id_
 
std::atomic< size_tcommitted_ {0}
 
size_t max_committed_ = 0
 

Detailed Description

Definition at line 142 of file large-spaces.h.

Constructor & Destructor Documentation

◆ OldLargeObjectSpace() [1/2]

v8::internal::OldLargeObjectSpace::OldLargeObjectSpace ( Heap * heap)
explicit

Definition at line 348 of file large-spaces.cc.

◆ OldLargeObjectSpace() [2/2]

v8::internal::OldLargeObjectSpace::OldLargeObjectSpace ( Heap * heap,
AllocationSpace id )
explicitprotected

Definition at line 351 of file large-spaces.cc.

Member Function Documentation

◆ AllocateRaw() [1/2]

AllocationResult v8::internal::OldLargeObjectSpace::AllocateRaw ( LocalHeap * local_heap,
int object_size )

Definition at line 102 of file large-spaces.cc.

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

◆ AllocateRaw() [2/2]

AllocationResult v8::internal::OldLargeObjectSpace::AllocateRaw ( LocalHeap * local_heap,
int object_size,
Executability executable )
protected

Definition at line 107 of file large-spaces.cc.

Here is the call graph for this function:

◆ PromoteNewLargeObject()

void v8::internal::OldLargeObjectSpace::PromoteNewLargeObject ( LargePageMetadata * page)

Definition at line 179 of file large-spaces.cc.

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

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