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

Unified Diff: src/mark-compact.cc

Issue 8910: Code cleanup & simplification.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 12 years, 1 month 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 | « src/mark-compact.h ('k') | src/v8-counters.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/mark-compact.cc
===================================================================
--- src/mark-compact.cc (revision 687)
+++ src/mark-compact.cc (working copy)
@@ -152,8 +152,6 @@
space->PrepareForMarkCompact(compacting_collection_);
}
- Counters::global_objects.Set(0);
-
#ifdef DEBUG
live_bytes_ = 0;
live_young_objects_ = 0;
@@ -327,12 +325,10 @@
void VisitUnmarkedObject(HeapObject* obj) {
#ifdef DEBUG
ASSERT(Heap::Contains(obj));
- MarkCompactCollector::UpdateLiveObjectCount(obj);
ASSERT(!obj->IsMarked());
#endif
Map* map = obj->map();
- obj->SetMark();
- MarkCompactCollector::tracer()->increment_marked_count();
+ MarkCompactCollector::SetMark(obj);
// Mark the map pointer and the body.
MarkCompactCollector::MarkObject(map);
obj->IterateBody(map->instance_type(), obj->SizeFromMap(map), this);
@@ -380,13 +376,9 @@
HeapObject* object = ShortCircuitConsString(p);
if (object->IsMarked()) return;
-#ifdef DEBUG
- MarkCompactCollector::UpdateLiveObjectCount(object);
-#endif
Map* map = object->map();
// Mark the object.
- object->SetMark();
- MarkCompactCollector::tracer()->increment_marked_count();
+ MarkCompactCollector::SetMark(object);
// Mark the map pointer and body, and push them on the marking stack.
MarkCompactCollector::MarkObject(map);
object->IterateBody(map->instance_type(), object->SizeFromMap(map),
@@ -423,20 +415,14 @@
void MarkCompactCollector::MarkUnmarkedObject(HeapObject* object) {
-#ifdef DEBUG
- UpdateLiveObjectCount(object);
-#endif
ASSERT(!object->IsMarked());
- if (object->IsJSGlobalObject()) Counters::global_objects.Increment();
-
- tracer_->increment_marked_count();
ASSERT(Heap::Contains(object));
if (object->IsMap()) {
Map* map = Map::cast(object);
if (FLAG_cleanup_caches_in_maps_at_gc) {
map->ClearCodeCache();
}
- map->SetMark();
+ SetMark(map);
if (FLAG_collect_maps &&
map->instance_type() >= FIRST_JS_OBJECT_TYPE &&
map->instance_type() <= JS_FUNCTION_TYPE) {
@@ -445,7 +431,7 @@
marking_stack.Push(map);
}
} else {
- object->SetMark();
+ SetMark(object);
marking_stack.Push(object);
}
}
@@ -469,24 +455,15 @@
if (descriptors->IsMarked()) return;
// Empty descriptor array is marked as a root before any maps are marked.
ASSERT(descriptors != Heap::empty_descriptor_array());
+ SetMark(descriptors);
- tracer_->increment_marked_count();
-#ifdef DEBUG
- UpdateLiveObjectCount(descriptors);
-#endif
- descriptors->SetMark();
-
FixedArray* contents = reinterpret_cast<FixedArray*>(
descriptors->get(DescriptorArray::kContentArrayIndex));
ASSERT(contents->IsHeapObject());
ASSERT(!contents->IsMarked());
ASSERT(contents->IsFixedArray());
ASSERT(contents->length() >= 2);
- tracer_->increment_marked_count();
-#ifdef DEBUG
- UpdateLiveObjectCount(contents);
-#endif
- contents->SetMark();
+ SetMark(contents);
// Contents contains (value, details) pairs. If the details say
// that the type of descriptor is MAP_TRANSITION, CONSTANT_TRANSITION,
// or NULL_DESCRIPTOR, we don't mark the value as live. Only for
@@ -498,11 +475,7 @@
if (details.type() < FIRST_PHANTOM_PROPERTY_TYPE) {
HeapObject* object = reinterpret_cast<HeapObject*>(contents->get(i));
if (object->IsHeapObject() && !object->IsMarked()) {
- tracer_->increment_marked_count();
-#ifdef DEBUG
- UpdateLiveObjectCount(object);
-#endif
- object->SetMark();
+ SetMark(object);
marking_stack.Push(object);
}
}
@@ -578,13 +551,9 @@
SymbolTable* symbol_table = SymbolTable::cast(Heap::symbol_table());
// 1. Mark the prefix of the symbol table gray.
symbol_table->IteratePrefix(visitor);
-#ifdef DEBUG
- UpdateLiveObjectCount(symbol_table);
-#endif
// 2. Mark the symbol table black (ie, do not push it on the marking stack
// or mark it overflowed).
- symbol_table->SetMark();
- tracer_->increment_marked_count();
+ SetMark(symbol_table);
// There may be overflowed objects in the heap. Visit them now.
while (marking_stack.overflowed()) {
« no previous file with comments | « src/mark-compact.h ('k') | src/v8-counters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698