Index: src/heap/incremental-marking.cc |
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
index 27a6954ca68392c3849f71d0109bd01c181e4dcc..494aa67f726fb67d0bca59f6137aaaf080d345b6 100644 |
--- a/src/heap/incremental-marking.cc |
+++ b/src/heap/incremental-marking.cc |
@@ -647,44 +647,6 @@ |
} |
-void IncrementalMarking::ProcessWeakCells() { |
- DCHECK(FLAG_finalize_marking_incrementally); |
- DCHECK(!finalize_marking_completed_); |
- DCHECK(IsMarking()); |
- |
- Object* weak_cell_obj = heap()->encountered_weak_cells(); |
- Object* weak_cell_head = Smi::FromInt(0); |
- WeakCell* prev_weak_cell_obj = NULL; |
- while (weak_cell_obj != Smi::FromInt(0)) { |
- WeakCell* weak_cell = reinterpret_cast<WeakCell*>(weak_cell_obj); |
- // We do not insert cleared weak cells into the list, so the value |
- // cannot be a Smi here. |
- HeapObject* value = HeapObject::cast(weak_cell->value()); |
- // Remove weak cells with live objects from the list, they do not need |
- // clearing. |
- if (MarkCompactCollector::IsMarked(value)) { |
- // Record slot, if value is pointing to an evacuation candidate. |
- Object** slot = HeapObject::RawField(weak_cell, WeakCell::kValueOffset); |
- heap_->mark_compact_collector()->RecordSlot(weak_cell, slot, *slot); |
- // Remove entry somewhere after top. |
- if (prev_weak_cell_obj != NULL) { |
- prev_weak_cell_obj->set_next(weak_cell->next()); |
- } |
- weak_cell_obj = weak_cell->next(); |
- weak_cell->clear_next(heap()); |
- } else { |
- if (weak_cell_head == Smi::FromInt(0)) { |
- weak_cell_head = weak_cell; |
- } |
- prev_weak_cell_obj = weak_cell; |
- weak_cell_obj = weak_cell->next(); |
- } |
- } |
- // Top may have changed. |
- heap()->set_encountered_weak_cells(weak_cell_head); |
-} |
- |
- |
void IncrementalMarking::FinalizeIncrementally() { |
DCHECK(FLAG_finalize_marking_incrementally); |
DCHECK(!finalize_marking_completed_); |
@@ -697,11 +659,8 @@ |
// objects to reduce the marking load in the final pause. |
// 1) We scan and mark the roots again to find all changes to the root set. |
// 2) We mark the object groups. |
- // 3) Remove weak cell with live values from the list of weak cells, they |
- // do not need processing during GC. |
MarkRoots(); |
MarkObjectGroups(); |
- ProcessWeakCells(); |
int marking_progress = |
abs(old_marking_deque_top - |