5#ifndef V8_HEAP_LARGE_SPACES_H_
6#define V8_HEAP_LARGE_SPACES_H_
11#include <unordered_map>
44 size_t Available()
const override;
50 size_t CommittedPhysicalMemory()
const override;
61 bool ContainsSlow(Address addr)
const;
64 bool IsEmpty()
const {
return first_page() ==
nullptr; }
74 memory_chunk_list_.front());
83 std::unique_ptr<ObjectIterator> GetObjectIterator(
Heap*
heap)
override;
93 void Print()
override;
99 return pending_object_.load(std::memory_order_acquire);
103 pending_object_.store(0, std::memory_order_release);
113 void AdvanceAndInvokeAllocationObservers(Address soon_object,
size_t size);
CodeLargeObjectSpace(Heap *heap)
void AddPage(LargePageMetadata *page, size_t object_size) override
V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT AllocationResult AllocateRaw(LocalHeap *local_heap, int object_size)
void RemovePage(LargePageMetadata *page) override
LargePageMetadata * current_
Tagged< HeapObject > Next() override
LargeObjectSpaceObjectIterator(LargeObjectSpace *space)
std::atomic< size_t > size_
void ResetPendingObject()
base::RecursiveMutex allocation_mutex_
size_t Size() const override
std::atomic< Address > pending_object_
void set_objects_size(size_t objects_size)
Address pending_object() const
LargePageMetadata * first_page() override
base::Mutex pending_allocation_mutex_
const_iterator begin() const
std::atomic< size_t > objects_size_
AllocationCounter allocation_counter_
const_iterator end() const
const LargePageMetadata * first_page() const override
size_t SizeOfObjects() const override
~LargeObjectSpace() override
base::Mutex * pending_allocation_mutex()
void FreeDeadObjects(const std::function< bool(Tagged< HeapObject >)> &is_dead)
V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT AllocationResult AllocateRaw(LocalHeap *local_heap, int object_size)
void SetCapacity(size_t capacity)
NewLargeObjectSpace(Heap *heap, size_t capacity)
size_t Available() const override
V8_EXPORT_PRIVATE OldLargeObjectSpace(Heap *heap)
void PromoteNewLargeObject(LargePageMetadata *page)
V8_EXPORT_PRIVATE V8_WARN_UNUSED_RESULT AllocationResult AllocateRaw(LocalHeap *local_heap, int object_size)
SharedLargeObjectSpace(Heap *heap)
SharedTrustedLargeObjectSpace(Heap *heap)
TrustedLargeObjectSpace(Heap *heap)
#define V8_EXPORT_PRIVATE
#define V8_WARN_UNUSED_RESULT