Chromium Code Reviews| Index: src/heap/incremental-marking.cc |
| diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
| index 95f522bd991fe83fadb9baa8445fd7768b736f6f..2184c72d31a3b091a11d5336d413662d9e897b60 100644 |
| --- a/src/heap/incremental-marking.cc |
| +++ b/src/heap/incremental-marking.cc |
| @@ -188,7 +188,12 @@ class IncrementalMarkingMarkingVisitor |
| } while (scan_until_end && start_offset < object_size); |
| chunk->set_progress_bar(start_offset); |
| if (start_offset < object_size) { |
|
Hannes Payer (out of office)
2015/05/15 15:26:06
As discussed offline, let's figure out the reason
|
| - heap->mark_compact_collector()->marking_deque()->UnshiftGrey(object); |
| + if (Marking::IsGrey(Marking::MarkBitFrom(object))) { |
| + heap->mark_compact_collector()->marking_deque()->UnshiftGrey(object); |
| + } else { |
| + DCHECK(Marking::IsBlack(Marking::MarkBitFrom(object))); |
| + heap->mark_compact_collector()->marking_deque()->UnshiftBlack(object); |
| + } |
| heap->incremental_marking()->NotifyIncompleteScanOfObject( |
| object_size - (start_offset - already_scanned_offset)); |
| } |