Commit eabb5142 authored by mstarzinger's avatar mstarzinger Committed by Commit bot

[heap] Remove unused support for heap iterator size function.

R=hpayer@chromium.org

Review URL: https://codereview.chromium.org/1281903002

Cr-Commit-Position: refs/heads/master@{#30071}
parent e8a399c0
...@@ -572,11 +572,6 @@ struct CodeDesc { ...@@ -572,11 +572,6 @@ struct CodeDesc {
}; };
// Callback function used for iterating objects in heap spaces,
// for example, scanning heap objects.
typedef int (*HeapObjectCallback)(HeapObject* obj);
// Callback function used for checking constraints when copying/relocating // Callback function used for checking constraints when copying/relocating
// objects. Returns true if an object can be copied/relocated from its // objects. Returns true if an object can be copied/relocated from its
// old_addr to a new_addr. // old_addr to a new_addr.
......
...@@ -6115,17 +6115,7 @@ OldSpace* OldSpaces::next() { ...@@ -6115,17 +6115,7 @@ OldSpace* OldSpaces::next() {
SpaceIterator::SpaceIterator(Heap* heap) SpaceIterator::SpaceIterator(Heap* heap)
: heap_(heap), : heap_(heap), current_space_(FIRST_SPACE), iterator_(NULL) {}
current_space_(FIRST_SPACE),
iterator_(NULL),
size_func_(NULL) {}
SpaceIterator::SpaceIterator(Heap* heap, HeapObjectCallback size_func)
: heap_(heap),
current_space_(FIRST_SPACE),
iterator_(NULL),
size_func_(size_func) {}
SpaceIterator::~SpaceIterator() { SpaceIterator::~SpaceIterator() {
...@@ -6162,19 +6152,19 @@ ObjectIterator* SpaceIterator::CreateIterator() { ...@@ -6162,19 +6152,19 @@ ObjectIterator* SpaceIterator::CreateIterator() {
switch (current_space_) { switch (current_space_) {
case NEW_SPACE: case NEW_SPACE:
iterator_ = new SemiSpaceIterator(heap_->new_space(), size_func_); iterator_ = new SemiSpaceIterator(heap_->new_space());
break; break;
case OLD_SPACE: case OLD_SPACE:
iterator_ = new HeapObjectIterator(heap_->old_space(), size_func_); iterator_ = new HeapObjectIterator(heap_->old_space());
break; break;
case CODE_SPACE: case CODE_SPACE:
iterator_ = new HeapObjectIterator(heap_->code_space(), size_func_); iterator_ = new HeapObjectIterator(heap_->code_space());
break; break;
case MAP_SPACE: case MAP_SPACE:
iterator_ = new HeapObjectIterator(heap_->map_space(), size_func_); iterator_ = new HeapObjectIterator(heap_->map_space());
break; break;
case LO_SPACE: case LO_SPACE:
iterator_ = new LargeObjectIterator(heap_->lo_space(), size_func_); iterator_ = new LargeObjectIterator(heap_->lo_space());
break; break;
} }
......
...@@ -2505,7 +2505,6 @@ class PagedSpaces BASE_EMBEDDED { ...@@ -2505,7 +2505,6 @@ class PagedSpaces BASE_EMBEDDED {
class SpaceIterator : public Malloced { class SpaceIterator : public Malloced {
public: public:
explicit SpaceIterator(Heap* heap); explicit SpaceIterator(Heap* heap);
SpaceIterator(Heap* heap, HeapObjectCallback size_func);
virtual ~SpaceIterator(); virtual ~SpaceIterator();
bool has_next(); bool has_next();
...@@ -2517,7 +2516,6 @@ class SpaceIterator : public Malloced { ...@@ -2517,7 +2516,6 @@ class SpaceIterator : public Malloced {
Heap* heap_; Heap* heap_;
int current_space_; // from enum AllocationSpace. int current_space_; // from enum AllocationSpace.
ObjectIterator* iterator_; // object iterator for the current space. ObjectIterator* iterator_; // object iterator for the current space.
HeapObjectCallback size_func_;
}; };
......
...@@ -169,7 +169,7 @@ class VerifyEvacuationVisitor : public ObjectVisitor { ...@@ -169,7 +169,7 @@ class VerifyEvacuationVisitor : public ObjectVisitor {
static void VerifyEvacuation(Page* page) { static void VerifyEvacuation(Page* page) {
VerifyEvacuationVisitor visitor; VerifyEvacuationVisitor visitor;
HeapObjectIterator iterator(page, NULL); HeapObjectIterator iterator(page);
for (HeapObject* heap_object = iterator.Next(); heap_object != NULL; for (HeapObject* heap_object = iterator.Next(); heap_object != NULL;
heap_object = iterator.Next()) { heap_object = iterator.Next()) {
// We skip free space objects. // We skip free space objects.
......
...@@ -88,7 +88,7 @@ HeapObject* HeapObjectIterator::FromCurrentPage() { ...@@ -88,7 +88,7 @@ HeapObject* HeapObjectIterator::FromCurrentPage() {
continue; continue;
} }
HeapObject* obj = HeapObject::FromAddress(cur_addr_); HeapObject* obj = HeapObject::FromAddress(cur_addr_);
int obj_size = (size_func_ == NULL) ? obj->Size() : size_func_(obj); int obj_size = obj->Size();
cur_addr_ += obj_size; cur_addr_ += obj_size;
DCHECK(cur_addr_ <= cur_end_); DCHECK(cur_addr_ <= cur_end_);
// TODO(hpayer): Remove the debugging code. // TODO(hpayer): Remove the debugging code.
......
...@@ -24,40 +24,27 @@ HeapObjectIterator::HeapObjectIterator(PagedSpace* space) { ...@@ -24,40 +24,27 @@ HeapObjectIterator::HeapObjectIterator(PagedSpace* space) {
// just an anchor for the double linked page list. Initialize as if we have // just an anchor for the double linked page list. Initialize as if we have
// reached the end of the anchor page, then the first iteration will move on // reached the end of the anchor page, then the first iteration will move on
// to the first page. // to the first page.
Initialize(space, NULL, NULL, kAllPagesInSpace, NULL); Initialize(space, NULL, NULL, kAllPagesInSpace);
} }
HeapObjectIterator::HeapObjectIterator(PagedSpace* space, HeapObjectIterator::HeapObjectIterator(Page* page) {
HeapObjectCallback size_func) {
// You can't actually iterate over the anchor page. It is not a real page,
// just an anchor for the double linked page list. Initialize the current
// address and end as NULL, then the first iteration will move on
// to the first page.
Initialize(space, NULL, NULL, kAllPagesInSpace, size_func);
}
HeapObjectIterator::HeapObjectIterator(Page* page,
HeapObjectCallback size_func) {
Space* owner = page->owner(); Space* owner = page->owner();
DCHECK(owner == page->heap()->old_space() || DCHECK(owner == page->heap()->old_space() ||
owner == page->heap()->map_space() || owner == page->heap()->map_space() ||
owner == page->heap()->code_space()); owner == page->heap()->code_space());
Initialize(reinterpret_cast<PagedSpace*>(owner), page->area_start(), Initialize(reinterpret_cast<PagedSpace*>(owner), page->area_start(),
page->area_end(), kOnePageOnly, size_func); page->area_end(), kOnePageOnly);
DCHECK(page->WasSwept() || page->SweepingCompleted()); DCHECK(page->WasSwept() || page->SweepingCompleted());
} }
void HeapObjectIterator::Initialize(PagedSpace* space, Address cur, Address end, void HeapObjectIterator::Initialize(PagedSpace* space, Address cur, Address end,
HeapObjectIterator::PageMode mode, HeapObjectIterator::PageMode mode) {
HeapObjectCallback size_f) {
space_ = space; space_ = space;
cur_addr_ = cur; cur_addr_ = cur;
cur_end_ = end; cur_end_ = end;
page_mode_ = mode; page_mode_ = mode;
size_func_ = size_f;
} }
...@@ -1009,7 +996,7 @@ Object* PagedSpace::FindObject(Address addr) { ...@@ -1009,7 +996,7 @@ Object* PagedSpace::FindObject(Address addr) {
if (!Contains(addr)) return Smi::FromInt(0); // Signaling not found. if (!Contains(addr)) return Smi::FromInt(0); // Signaling not found.
Page* p = Page::FromAddress(addr); Page* p = Page::FromAddress(addr);
HeapObjectIterator it(p, NULL); HeapObjectIterator it(p);
for (HeapObject* obj = it.Next(); obj != NULL; obj = it.Next()) { for (HeapObject* obj = it.Next(); obj != NULL; obj = it.Next()) {
Address cur = obj->address(); Address cur = obj->address();
Address next = cur + obj->Size(); Address next = cur + obj->Size();
...@@ -1186,7 +1173,7 @@ void PagedSpace::Verify(ObjectVisitor* visitor) { ...@@ -1186,7 +1173,7 @@ void PagedSpace::Verify(ObjectVisitor* visitor) {
allocation_pointer_found_in_space = true; allocation_pointer_found_in_space = true;
} }
CHECK(page->WasSwept()); CHECK(page->WasSwept());
HeapObjectIterator it(page, NULL); HeapObjectIterator it(page);
Address end_of_previous_object = page->area_start(); Address end_of_previous_object = page->area_start();
Address top = page->area_end(); Address top = page->area_end();
int black_size = 0; int black_size = 0;
...@@ -1860,32 +1847,24 @@ void SemiSpace::AssertValidRange(Address start, Address end) { ...@@ -1860,32 +1847,24 @@ void SemiSpace::AssertValidRange(Address start, Address end) {
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------
// SemiSpaceIterator implementation. // SemiSpaceIterator implementation.
SemiSpaceIterator::SemiSpaceIterator(NewSpace* space) { SemiSpaceIterator::SemiSpaceIterator(NewSpace* space) {
Initialize(space->bottom(), space->top(), NULL); Initialize(space->bottom(), space->top());
}
SemiSpaceIterator::SemiSpaceIterator(NewSpace* space,
HeapObjectCallback size_func) {
Initialize(space->bottom(), space->top(), size_func);
} }
SemiSpaceIterator::SemiSpaceIterator(NewSpace* space, Address start) { SemiSpaceIterator::SemiSpaceIterator(NewSpace* space, Address start) {
Initialize(start, space->top(), NULL); Initialize(start, space->top());
} }
SemiSpaceIterator::SemiSpaceIterator(Address from, Address to) { SemiSpaceIterator::SemiSpaceIterator(Address from, Address to) {
Initialize(from, to, NULL); Initialize(from, to);
} }
void SemiSpaceIterator::Initialize(Address start, Address end, void SemiSpaceIterator::Initialize(Address start, Address end) {
HeapObjectCallback size_func) {
SemiSpace::AssertValidRange(start, end); SemiSpace::AssertValidRange(start, end);
current_ = start; current_ = start;
limit_ = end; limit_ = end;
size_func_ = size_func;
} }
...@@ -2821,14 +2800,6 @@ void MapSpace::VerifyObject(HeapObject* object) { CHECK(object->IsMap()); } ...@@ -2821,14 +2800,6 @@ void MapSpace::VerifyObject(HeapObject* object) { CHECK(object->IsMap()); }
LargeObjectIterator::LargeObjectIterator(LargeObjectSpace* space) { LargeObjectIterator::LargeObjectIterator(LargeObjectSpace* space) {
current_ = space->first_page_; current_ = space->first_page_;
size_func_ = NULL;
}
LargeObjectIterator::LargeObjectIterator(LargeObjectSpace* space,
HeapObjectCallback size_func) {
current_ = space->first_page_;
size_func_ = size_func;
} }
...@@ -3140,7 +3111,7 @@ void Page::Print() { ...@@ -3140,7 +3111,7 @@ void Page::Print() {
PrintF("Page@%p in %s\n", this->address(), PrintF("Page@%p in %s\n", this->address(),
AllocationSpaceName(this->owner()->identity())); AllocationSpaceName(this->owner()->identity()));
printf(" --------------------------------------\n"); printf(" --------------------------------------\n");
HeapObjectIterator objects(this, nullptr); HeapObjectIterator objects(this);
unsigned mark_size = 0; unsigned mark_size = 0;
for (HeapObject* object = objects.Next(); object != NULL; for (HeapObject* object = objects.Next(); object != NULL;
object = objects.Next()) { object = objects.Next()) {
......
...@@ -1240,11 +1240,8 @@ class ObjectIterator : public Malloced { ...@@ -1240,11 +1240,8 @@ class ObjectIterator : public Malloced {
class HeapObjectIterator : public ObjectIterator { class HeapObjectIterator : public ObjectIterator {
public: public:
// Creates a new object iterator in a given space. // Creates a new object iterator in a given space.
// If the size function is not given, the iterator calls the default
// Object::Size().
explicit HeapObjectIterator(PagedSpace* space); explicit HeapObjectIterator(PagedSpace* space);
HeapObjectIterator(PagedSpace* space, HeapObjectCallback size_func); explicit HeapObjectIterator(Page* page);
HeapObjectIterator(Page* page, HeapObjectCallback size_func);
// Advance to the next object, skipping free spaces and other fillers and // Advance to the next object, skipping free spaces and other fillers and
// skipping the special garbage section of which there is one per space. // skipping the special garbage section of which there is one per space.
...@@ -1264,7 +1261,6 @@ class HeapObjectIterator : public ObjectIterator { ...@@ -1264,7 +1261,6 @@ class HeapObjectIterator : public ObjectIterator {
Address cur_addr_; // Current iteration point. Address cur_addr_; // Current iteration point.
Address cur_end_; // End iteration point. Address cur_end_; // End iteration point.
HeapObjectCallback size_func_; // Size function or NULL.
PagedSpace* space_; PagedSpace* space_;
PageMode page_mode_; PageMode page_mode_;
...@@ -1277,7 +1273,7 @@ class HeapObjectIterator : public ObjectIterator { ...@@ -1277,7 +1273,7 @@ class HeapObjectIterator : public ObjectIterator {
// Initializes fields. // Initializes fields.
inline void Initialize(PagedSpace* owner, Address start, Address end, inline void Initialize(PagedSpace* owner, Address start, Address end,
PageMode mode, HeapObjectCallback size_func); PageMode mode);
}; };
...@@ -2279,13 +2275,10 @@ class SemiSpace : public Space { ...@@ -2279,13 +2275,10 @@ class SemiSpace : public Space {
class SemiSpaceIterator : public ObjectIterator { class SemiSpaceIterator : public ObjectIterator {
public: public:
// Create an iterator over the objects in the given space. If no start // Create an iterator over the objects in the given space. If no start
// address is given, the iterator starts from the bottom of the space. If // address is given, the iterator starts from the bottom of the space.
// no size function is given, the iterator calls Object::Size().
// Iterate over all of allocated to-space. // Iterate over all of allocated to-space.
explicit SemiSpaceIterator(NewSpace* space); explicit SemiSpaceIterator(NewSpace* space);
// Iterate over all of allocated to-space, with a custome size function.
SemiSpaceIterator(NewSpace* space, HeapObjectCallback size_func);
// Iterate over part of allocated to-space, from start to the end // Iterate over part of allocated to-space, from start to the end
// of allocation. // of allocation.
SemiSpaceIterator(NewSpace* space, Address start); SemiSpaceIterator(NewSpace* space, Address start);
...@@ -2303,7 +2296,7 @@ class SemiSpaceIterator : public ObjectIterator { ...@@ -2303,7 +2296,7 @@ class SemiSpaceIterator : public ObjectIterator {
} }
HeapObject* object = HeapObject::FromAddress(current_); HeapObject* object = HeapObject::FromAddress(current_);
int size = (size_func_ == NULL) ? object->Size() : size_func_(object); int size = object->Size();
current_ += size; current_ += size;
return object; return object;
...@@ -2313,14 +2306,12 @@ class SemiSpaceIterator : public ObjectIterator { ...@@ -2313,14 +2306,12 @@ class SemiSpaceIterator : public ObjectIterator {
virtual HeapObject* next_object() { return Next(); } virtual HeapObject* next_object() { return Next(); }
private: private:
void Initialize(Address start, Address end, HeapObjectCallback size_func); void Initialize(Address start, Address end);
// The current iteration point. // The current iteration point.
Address current_; Address current_;
// The end of iteration. // The end of iteration.
Address limit_; Address limit_;
// The callback function.
HeapObjectCallback size_func_;
}; };
...@@ -2818,7 +2809,6 @@ class LargeObjectSpace : public Space { ...@@ -2818,7 +2809,6 @@ class LargeObjectSpace : public Space {
class LargeObjectIterator : public ObjectIterator { class LargeObjectIterator : public ObjectIterator {
public: public:
explicit LargeObjectIterator(LargeObjectSpace* space); explicit LargeObjectIterator(LargeObjectSpace* space);
LargeObjectIterator(LargeObjectSpace* space, HeapObjectCallback size_func);
HeapObject* Next(); HeapObject* Next();
...@@ -2827,7 +2817,6 @@ class LargeObjectIterator : public ObjectIterator { ...@@ -2827,7 +2817,6 @@ class LargeObjectIterator : public ObjectIterator {
private: private:
LargePage* current_; LargePage* current_;
HeapObjectCallback size_func_;
}; };
......
...@@ -455,7 +455,7 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback) { ...@@ -455,7 +455,7 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback) {
PagedSpace* owner = reinterpret_cast<PagedSpace*>(page->owner()); PagedSpace* owner = reinterpret_cast<PagedSpace*>(page->owner());
if (owner == heap_->map_space()) { if (owner == heap_->map_space()) {
DCHECK(page->WasSwept()); DCHECK(page->WasSwept());
HeapObjectIterator iterator(page, NULL); HeapObjectIterator iterator(page);
for (HeapObject* heap_object = iterator.Next(); heap_object != NULL; for (HeapObject* heap_object = iterator.Next(); heap_object != NULL;
heap_object = iterator.Next()) { heap_object = iterator.Next()) {
// We skip free space objects. // We skip free space objects.
...@@ -470,7 +470,7 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback) { ...@@ -470,7 +470,7 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback) {
} else { } else {
heap_->mark_compact_collector()->SweepOrWaitUntilSweepingCompleted( heap_->mark_compact_collector()->SweepOrWaitUntilSweepingCompleted(
page); page);
HeapObjectIterator iterator(page, NULL); HeapObjectIterator iterator(page);
for (HeapObject* heap_object = iterator.Next(); heap_object != NULL; for (HeapObject* heap_object = iterator.Next(); heap_object != NULL;
heap_object = iterator.Next()) { heap_object = iterator.Next()) {
// We iterate over objects that contain new space pointers only. // We iterate over objects that contain new space pointers only.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment