| Index: src/mark-compact.cc
|
| diff --git a/src/mark-compact.cc b/src/mark-compact.cc
|
| index cfcfb38b07d5ef3e54c781de921f4655df019aa3..3940b56232c421f4698fc5c31d0c301d812faa25 100644
|
| --- a/src/mark-compact.cc
|
| +++ b/src/mark-compact.cc
|
| @@ -2391,7 +2391,6 @@ void MarkCompactCollector::ReattachInitialMaps() {
|
| for (HeapObject* obj = map_iterator.Next();
|
| obj != NULL;
|
| obj = map_iterator.Next()) {
|
| - if (obj->IsFreeSpace()) continue;
|
| Map* map = Map::cast(obj);
|
|
|
| STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
|
| @@ -2405,21 +2404,19 @@ void MarkCompactCollector::ReattachInitialMaps() {
|
|
|
|
|
| void MarkCompactCollector::ClearNonLiveReferences() {
|
| - HeapObjectIterator map_iterator(heap()->map_space());
|
| // Iterate over the map space, setting map transitions that go from
|
| // a marked map to an unmarked map to null transitions. This action
|
| // is carried out only on maps of JSObjects and related subtypes.
|
| + HeapObjectIterator map_iterator(heap()->map_space());
|
| for (HeapObject* obj = map_iterator.Next();
|
| - obj != NULL; obj = map_iterator.Next()) {
|
| - Map* map = reinterpret_cast<Map*>(obj);
|
| - MarkBit map_mark = Marking::MarkBitFrom(map);
|
| - if (map->IsFreeSpace()) continue;
|
| + obj != NULL;
|
| + obj = map_iterator.Next()) {
|
| + Map* map = Map::cast(obj);
|
|
|
| - ASSERT(map->IsMap());
|
| if (!map->CanTransition()) continue;
|
|
|
| - if (map_mark.Get() &&
|
| - map->attached_to_shared_function_info()) {
|
| + MarkBit map_mark = Marking::MarkBitFrom(map);
|
| + if (map_mark.Get() && map->attached_to_shared_function_info()) {
|
| // This map is used for inobject slack tracking and has been detached
|
| // from SharedFunctionInfo during the mark phase.
|
| // Since it survived the GC, reattach it now.
|
|
|