5#ifndef V8_HEAP_LIVE_OBJECT_RANGE_INL_H_
6#define V8_HEAP_LIVE_OBJECT_RANGE_INL_H_
21 cells_(page->marking_bitmap()->cells()),
22 cage_base_(page->
heap()->isolate()),
25 current_cell_(cells_[current_cell_index_]) {
30 AdvanceToNextValidObject();
48 while (AdvanceToNextMarkedObject() &&
57 if (!current_object_.is_null()) {
61 Address next_object = current_object_.address() + current_size_;
79 current_cell_ = cells_[current_cell_index_] & ~(
mask - 1);
91 current_map_ = current_object_->map(cage_base_,
kAcquireLoad);
94 current_object_->SizeFromMap(current_map_));
95 CHECK(
page_->ContainsLimit(object_address + current_size_));
99 current_cell_ = cells_[current_cell_index_];
static Tagged< HeapObject > FromAddress(Address address)
bool AdvanceToNextMarkedObject()
void AdvanceToNextValidObject()
const PageMetadata *const page_
static V8_EXPORT_PRIVATE bool IsMapOrForwarded(Tagged< Map > map)
static constexpr size_t kCellsCount
static V8_INLINE constexpr CellIndex IndexToCell(MarkBitIndex index)
static V8_INLINE constexpr MarkBitIndex AddressToIndex(Address address)
static V8_INLINE constexpr Address CellToBase(CellIndex cell_index)
static V8_INLINE constexpr CellType IndexInCellMask(MarkBitIndex index)
V8_INLINE Address address() const
static V8_INLINE constexpr bool IsAligned(Address address)
#define ALIGN_TO_ALLOCATION_ALIGNMENT(value)
constexpr unsigned CountTrailingZeros(T value)
V8_INLINE constexpr bool IsFreeSpaceOrFiller(InstanceType instance_type)
constexpr int kTaggedSize
static constexpr Address kNullAddress
static constexpr AcquireLoadTag kAcquireLoad
#define DCHECK_LE(v1, v2)
#define DCHECK_GE(v1, v2)
#define DCHECK(condition)
#define DCHECK_LT(v1, v2)