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

Unified Diff: src/spaces.cc

Issue 6088012: Separate markbits from heap object map words into bitmaps. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: profiler related code reenabled Created 9 years, 11 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
« src/spaces.h ('K') | « src/spaces.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/spaces.cc
diff --git a/src/spaces.cc b/src/spaces.cc
index 739154ca55c23474685ad77457b336df08d1e774..c541a65666244152a20a96893f3df1c8c002ad93 100644
--- a/src/spaces.cc
+++ b/src/spaces.cc
@@ -1559,6 +1559,7 @@ MaybeObject* OldSpaceFreeList::Allocate(int size_in_bytes, int* wasted_bytes) {
void OldSpaceFreeList::MarkNodes() {
+#if 0
for (int i = 0; i < kFreeListsLength; i++) {
Address cur_addr = free_[i].head_node_;
while (cur_addr != NULL) {
@@ -1567,6 +1568,8 @@ void OldSpaceFreeList::MarkNodes() {
cur_node->SetMark();
}
}
+#endif
+ UNREACHABLE();
}
@@ -1630,12 +1633,15 @@ MaybeObject* FixedSizeFreeList::Allocate() {
void FixedSizeFreeList::MarkNodes() {
+#if 0
Address cur_addr = head_;
while (cur_addr != NULL && cur_addr != tail_) {
FreeListNode* cur_node = FreeListNode::FromAddress(cur_addr);
cur_addr = cur_node->next();
cur_node->SetMark();
}
+#endif
+ UNREACHABLE();
}
@@ -1697,6 +1703,7 @@ void PagedSpace::FreePages(Page* prev, Page* last) {
first->SetAllocationWatermark(first->ObjectAreaStart());
first->SetCachedAllocationWatermark(first->ObjectAreaStart());
first->SetRegionMarks(Page::kAllRegionsCleanMarks);
+ first->markbits()->Clear();
first = first->next_page();
} while (first != NULL);
}
@@ -2328,8 +2335,8 @@ void LargeObjectSpace::FreeUnmarkedObjects() {
LargePage* current = first_page_;
while (current != NULL) {
HeapObject* object = current->GetObject();
- if (object->IsMarked()) {
- object->ClearMark();
+ if (Marking::IsMarked(object)) {
+ Marking::ClearMark(object);
MarkCompactCollector::tracer()->decrement_marked_count();
previous = current;
current = current->next_page();
« src/spaces.h ('K') | « src/spaces.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698