| 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 -
|
|
|