V8 Project
v8::internal::LargeObjectSpace Class Reference

#include <spaces.h>

+ Inheritance diagram for v8::internal::LargeObjectSpace:
+ Collaboration diagram for v8::internal::LargeObjectSpace:

Public Member Functions

 LargeObjectSpace (Heap *heap, intptr_t max_capacity, AllocationSpace id)
 
virtual ~LargeObjectSpace ()
 
bool SetUp ()
 
void TearDown ()
 
MUST_USE_RESULT AllocationResult AllocateRaw (int object_size, Executability executable)
 
bool CanAllocateSize (int size)
 
intptr_t Available ()
 
virtual intptr_t Size ()
 
virtual intptr_t SizeOfObjects ()
 
intptr_t MaximumCommittedMemory ()
 
intptr_t CommittedMemory ()
 
size_t CommittedPhysicalMemory ()
 
int PageCount ()
 
ObjectFindObject (Address a)
 
LargePageFindPage (Address a)
 
void FreeUnmarkedObjects ()
 
bool Contains (HeapObject *obj)
 
bool IsEmpty ()
 
LargePagefirst_page ()
 
bool SlowContains (Address addr)
 
- Public Member Functions inherited from v8::internal::Space
 Space (Heap *heap, AllocationSpace id, Executability executable)
 
virtual ~Space ()
 
Heapheap () const
 
Executability executable ()
 
AllocationSpace identity ()
 
virtual int RoundSizeDownToObjectAlignment (int size)
 
- Public Member Functions inherited from v8::internal::Malloced
void * operator new (size_t size)
 
void operator delete (void *p)
 

Static Public Member Functions

static intptr_t ObjectSizeFor (intptr_t chunk_size)
 
- Static Public Member Functions inherited from v8::internal::Malloced
static void FatalProcessOutOfMemory ()
 
static void * New (size_t size)
 
static void Delete (void *p)
 

Private Attributes

intptr_t max_capacity_
 
intptr_t maximum_committed_
 
LargePagefirst_page_
 
intptr_t size_
 
int page_count_
 
intptr_t objects_size_
 
HashMap chunk_map_
 

Friends

class LargeObjectIterator
 

Detailed Description

Definition at line 2714 of file spaces.h.

Constructor & Destructor Documentation

◆ LargeObjectSpace()

v8::internal::LargeObjectSpace::LargeObjectSpace ( Heap heap,
intptr_t  max_capacity,
AllocationSpace  id 
)

Definition at line 2797 of file spaces.cc.

2799  : Space(heap, id, NOT_EXECUTABLE), // Managed on a per-allocation basis
2800  max_capacity_(max_capacity),
2801  first_page_(NULL),
2802  size_(0),
2803  page_count_(0),
2804  objects_size_(0),
2805  chunk_map_(ComparePointers, 1024) {}
Space(Heap *heap, AllocationSpace id, Executability executable)
Definition: spaces.h:818
Heap * heap() const
Definition: spaces.h:823
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL
@ NOT_EXECUTABLE
Definition: globals.h:391
static bool ComparePointers(void *key1, void *key2)
Definition: spaces.cc:2794

◆ ~LargeObjectSpace()

virtual v8::internal::LargeObjectSpace::~LargeObjectSpace ( )
inlinevirtual

Definition at line 2717 of file spaces.h.

2717 {}

Member Function Documentation

◆ AllocateRaw()

AllocationResult v8::internal::LargeObjectSpace::AllocateRaw ( int  object_size,
Executability  executable 
)

Definition at line 2834 of file spaces.cc.

2835  {
2836  // Check if we want to force a GC before growing the old space further.
2837  // If so, fail the allocation.
2838  if (!heap()->always_allocate() &&
2839  heap()->OldGenerationAllocationLimitReached()) {
2841  }
2842 
2843  if (!CanAllocateSize(object_size)) return AllocationResult::Retry(identity());
2844 
2845  LargePage* page = heap()->isolate()->memory_allocator()->AllocateLargePage(
2846  object_size, this, executable);
2847  if (page == NULL) return AllocationResult::Retry(identity());
2848  DCHECK(page->area_size() >= object_size);
2849 
2850  size_ += static_cast<int>(page->size());
2851  objects_size_ += object_size;
2852  page_count_++;
2853  page->set_next_page(first_page_);
2854  first_page_ = page;
2855 
2856  if (size_ > maximum_committed_) {
2858  }
2859 
2860  // Register all MemoryChunk::kAlignment-aligned chunks covered by
2861  // this large page in the chunk map.
2862  uintptr_t base = reinterpret_cast<uintptr_t>(page) / MemoryChunk::kAlignment;
2863  uintptr_t limit = base + (page->size() - 1) / MemoryChunk::kAlignment;
2864  for (uintptr_t key = base; key <= limit; key++) {
2865  HashMap::Entry* entry = chunk_map_.Lookup(reinterpret_cast<void*>(key),
2866  static_cast<uint32_t>(key), true);
2867  DCHECK(entry != NULL);
2868  entry->value = page;
2869  }
2870 
2871  HeapObject* object = page->GetObject();
2872 
2873  MSAN_ALLOCATED_UNINITIALIZED_MEMORY(object->address(), object_size);
2874 
2875  if (Heap::ShouldZapGarbage()) {
2876  // Make the object consistent so the heap can be verified in OldSpaceStep.
2877  // We only need to do this in debug builds or if verify_heap is on.
2878  reinterpret_cast<Object**>(object->address())[0] =
2879  heap()->fixed_array_map();
2880  reinterpret_cast<Object**>(object->address())[1] = Smi::FromInt(0);
2881  }
2882 
2883  heap()->incremental_marking()->OldSpaceStep(object_size);
2884  return object;
2885 }
static AllocationResult Retry(AllocationSpace space=NEW_SPACE)
Definition: spaces.h:1616
Isolate * isolate()
Definition: heap-inl.h:589
IncrementalMarking * incremental_marking()
Definition: heap.h:1205
static bool ShouldZapGarbage()
Definition: heap.h:926
void OldSpaceStep(intptr_t allocated)
MemoryAllocator * memory_allocator()
Definition: isolate.h:883
bool CanAllocateSize(int size)
Definition: spaces.h:2735
LargePage * AllocateLargePage(intptr_t object_size, Space *owner, Executability executable)
Definition: spaces.cc:690
static const intptr_t kAlignment
Definition: spaces.h:523
static Smi * FromInt(int value)
Definition: objects-inl.h:1321
AllocationSpace identity()
Definition: spaces.h:829
Executability executable()
Definition: spaces.h:826
Entry * Lookup(void *key, uint32_t hash, bool insert, AllocationPolicy allocator=AllocationPolicy())
Definition: hashmap.h:114
#define DCHECK(condition)
Definition: logging.h:205
#define MSAN_ALLOCATED_UNINITIALIZED_MEMORY(p, s)
Definition: msan.h:29
kSerializedDataOffset Object
Definition: objects-inl.h:5322

References v8::internal::HeapObject::address(), v8::internal::MemoryAllocator::AllocateLargePage(), v8::internal::MemoryChunk::area_size(), CanAllocateSize(), chunk_map_, DCHECK, v8::internal::Space::executable(), first_page_, v8::internal::Smi::FromInt(), v8::internal::LargePage::GetObject(), v8::internal::Space::heap(), v8::internal::Space::identity(), v8::internal::Heap::incremental_marking(), v8::internal::Heap::isolate(), v8::internal::MemoryChunk::kAlignment, v8::internal::TemplateHashMapImpl< AllocationPolicy >::Lookup(), maximum_committed_, v8::internal::Isolate::memory_allocator(), MSAN_ALLOCATED_UNINITIALIZED_MEMORY, NULL, objects_size_, v8::internal::IncrementalMarking::OldSpaceStep(), page_count_, v8::internal::AllocationResult::Retry(), v8::internal::LargePage::set_next_page(), v8::internal::Heap::ShouldZapGarbage(), v8::internal::MemoryChunk::size(), and size_.

Referenced by v8::internal::Deserializer::Allocate(), v8::internal::Heap::AllocateCode(), and v8::internal::Heap::AllocateRaw().

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

◆ Available()

intptr_t v8::internal::LargeObjectSpace::Available ( )
inline

Definition at line 298 of file spaces-inl.h.

298  {
299  return ObjectSizeFor(heap()->isolate()->memory_allocator()->Available());
300 }
static intptr_t ObjectSizeFor(intptr_t chunk_size)
Definition: spaces.h:2725

References v8::internal::Space::heap(), and ObjectSizeFor().

Referenced by v8::internal::StatisticsExtension::GetCounters(), and v8::internal::Heap::PrintShortHeapStatistics().

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

◆ CanAllocateSize()

bool v8::internal::LargeObjectSpace::CanAllocateSize ( int  size)
inline

Definition at line 2735 of file spaces.h.

2735 { return Size() + size <= max_capacity_; }
virtual intptr_t Size()
Definition: spaces.h:2740
enable harmony numeric enable harmony object literal extensions Optimize object size

References max_capacity_, size, and Size().

Referenced by AllocateRaw(), and v8::internal::Heap::ReserveSpace().

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

◆ CommittedMemory()

intptr_t v8::internal::LargeObjectSpace::CommittedMemory ( )
inline

Definition at line 2746 of file spaces.h.

2746 { return Size(); }

References Size().

Referenced by CommittedPhysicalMemory(), v8::internal::StatisticsExtension::GetCounters(), and v8::internal::Heap::PrintShortHeapStatistics().

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

◆ CommittedPhysicalMemory()

size_t v8::internal::LargeObjectSpace::CommittedPhysicalMemory ( )

Definition at line 2888 of file spaces.cc.

2888  {
2890  size_t size = 0;
2891  LargePage* current = first_page_;
2892  while (current != NULL) {
2893  size += current->CommittedPhysicalMemory();
2894  current = current->next_page();
2895  }
2896  return size;
2897 }

References CommittedMemory(), v8::internal::MemoryChunk::CommittedPhysicalMemory(), first_page_, v8::base::VirtualMemory::HasLazyCommits(), v8::internal::LargePage::next_page(), NULL, and size.

Referenced by v8::internal::Heap::CommittedPhysicalMemory().

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

◆ Contains()

bool v8::internal::LargeObjectSpace::Contains ( HeapObject obj)

Definition at line 2980 of file spaces.cc.

2980  {
2981  Address address = object->address();
2982  MemoryChunk* chunk = MemoryChunk::FromAddress(address);
2983 
2984  bool owned = (chunk->owner() == this);
2985 
2986  SLOW_DCHECK(!owned || FindObject(address)->IsHeapObject());
2987 
2988  return owned;
2989 }
#define SLOW_DCHECK(condition)
Definition: checks.h:30
Object * FindObject(Address a)
Definition: spaces.cc:2901
static MemoryChunk * FromAddress(Address a)
Definition: spaces.h:276
byte * Address
Definition: globals.h:101

References FindObject(), v8::internal::MemoryChunk::FromAddress(), v8::internal::MemoryChunk::owner(), and SLOW_DCHECK.

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

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

◆ FindObject()

Object * v8::internal::LargeObjectSpace::FindObject ( Address  a)

Definition at line 2901 of file spaces.cc.

2901  {
2902  LargePage* page = FindPage(a);
2903  if (page != NULL) {
2904  return page->GetObject();
2905  }
2906  return Smi::FromInt(0); // Signaling not found.
2907 }
LargePage * FindPage(Address a)
Definition: spaces.cc:2910

References FindPage(), v8::internal::Smi::FromInt(), v8::internal::LargePage::GetObject(), and NULL.

Referenced by Contains(), and SlowContains().

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

◆ FindPage()

LargePage * v8::internal::LargeObjectSpace::FindPage ( Address  a)

Definition at line 2910 of file spaces.cc.

2910  {
2911  uintptr_t key = reinterpret_cast<uintptr_t>(a) / MemoryChunk::kAlignment;
2912  HashMap::Entry* e = chunk_map_.Lookup(reinterpret_cast<void*>(key),
2913  static_cast<uint32_t>(key), false);
2914  if (e != NULL) {
2915  DCHECK(e->value != NULL);
2916  LargePage* page = reinterpret_cast<LargePage*>(e->value);
2917  DCHECK(page->is_valid());
2918  if (page->Contains(a)) {
2919  return page;
2920  }
2921  }
2922  return NULL;
2923 }

References chunk_map_, v8::internal::MemoryChunk::Contains(), DCHECK, v8::internal::MemoryChunk::is_valid(), v8::internal::MemoryChunk::kAlignment, v8::internal::TemplateHashMapImpl< AllocationPolicy >::Lookup(), and NULL.

Referenced by FindObject(), and v8::internal::InnerPointerToCodeCache::GcSafeFindCodeForInnerPointer().

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

◆ first_page()

LargePage* v8::internal::LargeObjectSpace::first_page ( )
inline

Definition at line 2770 of file spaces.h.

2770 { return first_page_; }

References first_page_.

Referenced by v8::internal::IncrementalMarking::ActivateIncrementalWriteBarrier(), and v8::internal::IncrementalMarking::DeactivateIncrementalWriteBarrier().

+ Here is the caller graph for this function:

◆ FreeUnmarkedObjects()

void v8::internal::LargeObjectSpace::FreeUnmarkedObjects ( )

Definition at line 2926 of file spaces.cc.

2926  {
2927  LargePage* previous = NULL;
2928  LargePage* current = first_page_;
2929  while (current != NULL) {
2930  HeapObject* object = current->GetObject();
2931  // Can this large page contain pointers to non-trivial objects. No other
2932  // pointer object is this big.
2933  bool is_pointer_object = object->IsFixedArray();
2934  MarkBit mark_bit = Marking::MarkBitFrom(object);
2935  if (mark_bit.Get()) {
2936  mark_bit.Clear();
2937  Page::FromAddress(object->address())->ResetProgressBar();
2938  Page::FromAddress(object->address())->ResetLiveBytes();
2939  previous = current;
2940  current = current->next_page();
2941  } else {
2942  LargePage* page = current;
2943  // Cut the chunk out from the chunk list.
2944  current = current->next_page();
2945  if (previous == NULL) {
2946  first_page_ = current;
2947  } else {
2948  previous->set_next_page(current);
2949  }
2950 
2951  // Free the chunk.
2953  heap()->isolate());
2954  size_ -= static_cast<int>(page->size());
2955  objects_size_ -= object->Size();
2956  page_count_--;
2957 
2958  // Remove entries belonging to this page.
2959  // Use variable alignment to help pass length check (<= 80 characters)
2960  // of single line in tools/presubmit.py.
2961  const intptr_t alignment = MemoryChunk::kAlignment;
2962  uintptr_t base = reinterpret_cast<uintptr_t>(page) / alignment;
2963  uintptr_t limit = base + (page->size() - 1) / alignment;
2964  for (uintptr_t key = base; key <= limit; key++) {
2965  chunk_map_.Remove(reinterpret_cast<void*>(key),
2966  static_cast<uint32_t>(key));
2967  }
2968 
2969  if (is_pointer_object) {
2970  heap()->QueueMemoryChunkForFree(page);
2971  } else {
2972  heap()->isolate()->memory_allocator()->Free(page);
2973  }
2974  }
2975  }
2976  heap()->FreeQueuedChunks();
2977 }
void FreeQueuedChunks()
Definition: heap.cc:6025
void QueueMemoryChunkForFree(MemoryChunk *chunk)
Definition: heap.cc:6019
MarkCompactCollector * mark_compact_collector()
Definition: heap.h:1197
HeapObject * GetObject()
Definition: spaces.h:798
void set_next_page(LargePage *page)
Definition: spaces.h:804
static void ReportDeleteIfNeeded(HeapObject *obj, Isolate *isolate)
void Free(MemoryChunk *chunk)
Definition: spaces.cc:700
void * Remove(void *key, uint32_t hash)
Definition: hashmap.h:145

References v8::internal::HeapObject::address(), chunk_map_, v8::internal::MarkBit::Clear(), first_page_, v8::internal::MemoryAllocator::Free(), v8::internal::Heap::FreeQueuedChunks(), v8::internal::MemoryChunk::FromAddress(), v8::internal::MarkBit::Get(), v8::internal::LargePage::GetObject(), v8::internal::Space::heap(), v8::internal::Heap::isolate(), v8::internal::MemoryChunk::kAlignment, v8::internal::Heap::mark_compact_collector(), v8::internal::Isolate::memory_allocator(), v8::internal::LargePage::next_page(), NULL, objects_size_, page_count_, v8::internal::Heap::QueueMemoryChunkForFree(), v8::internal::TemplateHashMapImpl< AllocationPolicy >::Remove(), v8::internal::MarkCompactCollector::ReportDeleteIfNeeded(), v8::internal::MemoryChunk::ResetLiveBytes(), v8::internal::MemoryChunk::ResetProgressBar(), v8::internal::LargePage::set_next_page(), v8::internal::MemoryChunk::size(), and size_.

Referenced by v8::internal::MarkCompactCollector::SweepSpaces().

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

◆ IsEmpty()

bool v8::internal::LargeObjectSpace::IsEmpty ( )
inline

Definition at line 2768 of file spaces.h.

2768 { return first_page_ == NULL; }

References first_page_, and NULL.

◆ MaximumCommittedMemory()

intptr_t v8::internal::LargeObjectSpace::MaximumCommittedMemory ( )
inline

Definition at line 2744 of file spaces.h.

2744 { return maximum_committed_; }

References maximum_committed_.

Referenced by v8::internal::Heap::TearDown().

+ Here is the caller graph for this function:

◆ ObjectSizeFor()

static intptr_t v8::internal::LargeObjectSpace::ObjectSizeFor ( intptr_t  chunk_size)
inlinestatic

Definition at line 2725 of file spaces.h.

2725  {
2726  if (chunk_size <= (Page::kPageSize + Page::kObjectStartOffset)) return 0;
2727  return chunk_size - Page::kPageSize - Page::kObjectStartOffset;
2728  }
static const int kObjectStartOffset
Definition: spaces.h:550
static const int kPageSize
Definition: spaces.h:748

References v8::internal::MemoryChunk::kObjectStartOffset, and v8::internal::Page::kPageSize.

Referenced by Available().

+ Here is the caller graph for this function:

◆ PageCount()

int v8::internal::LargeObjectSpace::PageCount ( )
inline

Definition at line 2751 of file spaces.h.

2751 { return page_count_; }

References page_count_.

◆ SetUp()

bool v8::internal::LargeObjectSpace::SetUp ( )

Definition at line 2808 of file spaces.cc.

2808  {
2809  first_page_ = NULL;
2810  size_ = 0;
2811  maximum_committed_ = 0;
2812  page_count_ = 0;
2813  objects_size_ = 0;
2814  chunk_map_.Clear();
2815  return true;
2816 }

References chunk_map_, v8::internal::TemplateHashMapImpl< AllocationPolicy >::Clear(), first_page_, maximum_committed_, NULL, objects_size_, page_count_, and size_.

Referenced by v8::internal::Heap::SetUp(), and TearDown().

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

◆ Size()

virtual intptr_t v8::internal::LargeObjectSpace::Size ( )
inlinevirtual

Implements v8::internal::Space.

Definition at line 2740 of file spaces.h.

2740 { return size_; }

References size_.

Referenced by CanAllocateSize(), v8::internal::Heap::CommittedMemory(), CommittedMemory(), v8::internal::StatisticsExtension::GetCounters(), and v8::internal::Heap::RecordStats().

+ Here is the caller graph for this function:

◆ SizeOfObjects()

virtual intptr_t v8::internal::LargeObjectSpace::SizeOfObjects ( )
inlinevirtual

Reimplemented from v8::internal::Space.

Definition at line 2742 of file spaces.h.

2742 { return objects_size_; }

References objects_size_.

Referenced by v8::internal::Heap::PrintShortHeapStatistics(), and v8::internal::Heap::PromotedSpaceSizeOfObjects().

+ Here is the caller graph for this function:

◆ SlowContains()

bool v8::internal::LargeObjectSpace::SlowContains ( Address  addr)
inline

Definition at line 2783 of file spaces.h.

2783 { return FindObject(addr)->IsHeapObject(); }

References FindObject().

Referenced by v8::internal::Heap::Contains(), and v8::internal::Heap::InSpace().

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

◆ TearDown()

void v8::internal::LargeObjectSpace::TearDown ( )

Definition at line 2819 of file spaces.cc.

2819  {
2820  while (first_page_ != NULL) {
2821  LargePage* page = first_page_;
2823  LOG(heap()->isolate(), DeleteEvent("LargeObjectChunk", page->address()));
2824 
2825  ObjectSpace space = static_cast<ObjectSpace>(1 << identity());
2827  space, kAllocationActionFree, page->size());
2828  heap()->isolate()->memory_allocator()->Free(page);
2829  }
2830  SetUp();
2831 }
LargePage * next_page() const
Definition: spaces.h:800
void PerformAllocationCallback(ObjectSpace space, AllocationAction action, size_t size)
Definition: spaces.cc:750
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be expose gc extension under the specified name show built in functions in stack traces use random jit cookie to mask large constants minimum length for automatic enable preparsing CPU profiler sampling interval in microseconds trace out of bounds accesses to external arrays default size of stack region v8 is allowed to maximum length of function source code printed in a stack trace min size of a semi space(in MBytes)
#define LOG(isolate, Call)
Definition: log.h:69
@ kAllocationActionFree
Definition: v8.h:4167
ObjectSpace
Definition: v8.h:4152

References v8::internal::MemoryChunk::address(), first_page_, v8::internal::MemoryAllocator::Free(), v8::internal::Space::heap(), v8::internal::Space::identity(), v8::internal::Heap::isolate(), v8::kAllocationActionFree, LOG, v8::internal::Isolate::memory_allocator(), v8::internal::LargePage::next_page(), NULL, v8::internal::MemoryAllocator::PerformAllocationCallback(), SetUp(), v8::internal::MemoryChunk::size(), and space().

Referenced by v8::internal::Heap::TearDown().

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

Friends And Related Function Documentation

◆ LargeObjectIterator

friend class LargeObjectIterator
friend

Definition at line 2796 of file spaces.h.

Member Data Documentation

◆ chunk_map_

HashMap v8::internal::LargeObjectSpace::chunk_map_
private

Definition at line 2794 of file spaces.h.

Referenced by AllocateRaw(), FindPage(), FreeUnmarkedObjects(), and SetUp().

◆ first_page_

LargePage* v8::internal::LargeObjectSpace::first_page_
private

◆ max_capacity_

intptr_t v8::internal::LargeObjectSpace::max_capacity_
private

Definition at line 2786 of file spaces.h.

Referenced by CanAllocateSize().

◆ maximum_committed_

intptr_t v8::internal::LargeObjectSpace::maximum_committed_
private

Definition at line 2787 of file spaces.h.

Referenced by AllocateRaw(), MaximumCommittedMemory(), and SetUp().

◆ objects_size_

intptr_t v8::internal::LargeObjectSpace::objects_size_
private

Definition at line 2792 of file spaces.h.

Referenced by AllocateRaw(), FreeUnmarkedObjects(), SetUp(), and SizeOfObjects().

◆ page_count_

int v8::internal::LargeObjectSpace::page_count_
private

Definition at line 2791 of file spaces.h.

Referenced by AllocateRaw(), FreeUnmarkedObjects(), PageCount(), and SetUp().

◆ size_

intptr_t v8::internal::LargeObjectSpace::size_
private

Definition at line 2790 of file spaces.h.

Referenced by AllocateRaw(), FreeUnmarkedObjects(), SetUp(), and Size().


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