Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(755)

Unified Diff: runtime/vm/pages.cc

Issue 265773011: De-duplicate code by adding size-independent iteration. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/pages.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/pages.cc
===================================================================
--- runtime/vm/pages.cc (revision 35671)
+++ runtime/vm/pages.cc (working copy)
@@ -296,16 +296,8 @@
if (page->Contains(addr)) {
return true;
}
- page = page->next();
+ page = NextPageAnySize(page);
}
-
- page = large_pages_;
- while (page != NULL) {
- if (page->Contains(addr)) {
- return true;
- }
- page = page->next();
- }
return false;
}
@@ -316,16 +308,8 @@
if ((page->type() == type) && page->Contains(addr)) {
return true;
}
- page = page->next();
+ page = NextPageAnySize(page);
}
-
- page = large_pages_;
- while (page != NULL) {
- if ((page->type() == type) && page->Contains(addr)) {
- return true;
- }
- page = page->next();
- }
return false;
}
@@ -334,14 +318,10 @@
ASSERT(pages_ != NULL || large_pages_ != NULL);
*start = static_cast<uword>(~0);
*end = 0;
- for (HeapPage* page = pages_; page != NULL; page = page->next()) {
+ for (HeapPage* page = pages_; page != NULL; page = NextPageAnySize(page)) {
*start = Utils::Minimum(*start, page->object_start());
*end = Utils::Maximum(*end, page->object_end());
}
- for (HeapPage* page = large_pages_; page != NULL; page = page->next()) {
- *start = Utils::Minimum(*start, page->object_start());
- *end = Utils::Maximum(*end, page->object_end());
- }
ASSERT(*start != static_cast<uword>(~0));
ASSERT(*end != 0);
}
@@ -351,14 +331,8 @@
HeapPage* page = pages_;
while (page != NULL) {
page->VisitObjects(visitor);
- page = page->next();
+ page = NextPageAnySize(page);
}
-
- page = large_pages_;
- while (page != NULL) {
- page->VisitObjects(visitor);
- page = page->next();
- }
}
@@ -366,14 +340,8 @@
HeapPage* page = pages_;
while (page != NULL) {
page->VisitObjectPointers(visitor);
- page = page->next();
+ page = NextPageAnySize(page);
}
-
- page = large_pages_;
- while (page != NULL) {
- page->VisitObjectPointers(visitor);
- page = page->next();
- }
}
@@ -388,19 +356,8 @@
return obj;
}
}
- page = page->next();
+ page = NextPageAnySize(page);
}
-
- page = large_pages_;
- while (page != NULL) {
- if (page->type() == type) {
- RawObject* obj = page->FindObject(visitor);
- if (obj != Object::null()) {
- return obj;
- }
- }
- page = page->next();
- }
return Object::null();
}
@@ -409,13 +366,8 @@
HeapPage* page = pages_;
while (page != NULL) {
page->WriteProtect(read_only);
- page = page->next();
+ page = NextPageAnySize(page);
}
- page = large_pages_;
- while (page != NULL) {
- page->WriteProtect(read_only);
- page = page->next();
- }
}
@@ -523,15 +475,8 @@
if (current_page->type() == HeapPage::kExecutable) {
current_page->WriteProtect(false);
}
- current_page = current_page->next();
+ current_page = NextPageAnySize(current_page);
}
- current_page = large_pages_;
- while (current_page != NULL) {
- if (current_page->type() == HeapPage::kExecutable) {
- current_page->WriteProtect(false);
- }
- current_page = current_page->next();
- }
}
// Save old value before GCMarker visits the weak persistent handles.
@@ -591,15 +536,8 @@
if (current_page->type() == HeapPage::kExecutable) {
current_page->WriteProtect(true);
}
- current_page = current_page->next();
+ current_page = NextPageAnySize(current_page);
}
- current_page = large_pages_;
- while (current_page != NULL) {
- if (current_page->type() == HeapPage::kExecutable) {
- current_page->WriteProtect(true);
- }
- current_page = current_page->next();
- }
}
int64_t end = OS::GetCurrentTimeMicros();
« no previous file with comments | « runtime/vm/pages.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698