25 size_t chunk_size,
Address area_start,
30 std::move(reservation)) {
51 static constexpr auto kOffsetOfFirstFastField =
53 static constexpr auto kOffsetOfLastFastField =
59 static_assert(kOffsetOfFirstFastField / 64 == kOffsetOfLastFastField / 64);
68 heap()->incremental_marking()->marking_mode());
71 heap()->incremental_marking()->marking_mode(),
owner()->identity());
147 &
slot_set_[type],
nullptr, new_slot_set);
150 new_slot_set = old_slot_set;
static void Delete(BasicSlotSet *slot_set)
static T AcquireRelease_CompareAndSwap(T *addr, typename std::remove_reference< T >::type old_value, typename std::remove_reference< T >::type new_value)
static T Release_CompareAndSwap(T *addr, typename std::remove_reference< T >::type old_value, typename std::remove_reference< T >::type new_value)
static bool HasLazyCommits()
FreeListCategoryType last_category()
static V8_INLINE intptr_t GetCommitPageSizeBits()
@ IN_WRITABLE_SHARED_SPACE
static MainThreadFlags OldGenerationPageFlags(MarkingMode marking_mode, AllocationSpace space)
static MainThreadFlags YoungGenerationPageFlags(MarkingMode marking_mode)
void ReleaseTypedSlotSet(RememberedSetType type)
size_t live_bytes() const
bool ContainsAnySlots() const
TypedSlotSet * typed_slot_set()
MemoryChunk::MainThreadFlags InitialFlags(Executability executable) const
MarkingBitmap * marking_bitmap()
size_t BucketsInSlotSet() const
TypedSlotSet * AllocateTypedSlotSet(RememberedSetType type)
V8_EXPORT_PRIVATE SlotSet * AllocateSlotSet(RememberedSetType type)
bool IsLivenessClear() const
void ReleaseAllocatedMemoryNeededForWritableChunk()
V8_EXPORT_PRIVATE size_t CommittedPhysicalMemory() const
bool SweepingDone() const
void ReleaseSlotSet(RememberedSetType type)
MutablePageMetadata(Heap *heap, BaseSpace *space, size_t size, Address area_start, Address area_end, VirtualMemory reservation, PageSize page_size)
void ReleaseAllAllocatedMemory()
std::unique_ptr< ActiveSystemPages > active_system_pages_
SlotSet * slot_set_[NUMBER_OF_REMEMBERED_SET_TYPES]
TypedSlotSet * typed_slot_set_[NUMBER_OF_REMEMBERED_SET_TYPES]
PossiblyEmptyBuckets possibly_empty_buckets_
int ComputeFreeListsLength()
FreeListCategory ** categories_
void ReleaseFreeListCategories()
static SlotSet * Allocate(size_t buckets)
static constexpr FreeListCategoryType kFirstCategory
@ NUMBER_OF_REMEMBERED_SET_TYPES
@ SURVIVOR_TO_EXTERNAL_POINTER
@ TRUSTED_TO_SHARED_TRUSTED
V8_INLINE bool InsideSandbox(uintptr_t address)
#define CHECK_IMPLIES(lhs, rhs)
#define DCHECK_NOT_NULL(val)
#define DCHECK_IMPLIES(v1, v2)
#define DCHECK_NE(v1, v2)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)