Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index d4550949035c07e573287a67ce0596a885c5d064..bc55f9e1c5f8fb88a9a3db623d2dba0efd3bc2d9 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -827,7 +827,8 @@ bool Heap::CollectGarbage(GarbageCollector collector, const char* gc_reason, |
const intptr_t kStepSizeWhenDelayedByScavenge = 1 * MB; |
incremental_marking()->Step(kStepSizeWhenDelayedByScavenge, |
IncrementalMarking::NO_GC_VIA_STACK_GUARD); |
- if (!incremental_marking()->IsComplete() && !FLAG_gc_global) { |
+ if (!incremental_marking()->IsComplete() && |
+ !mark_compact_collector_.marking_deque_.IsEmpty() && !FLAG_gc_global) { |
jochen (gone - plz use gerrit)
2015/01/26 14:09:01
should this check for overflow as well?
Hannes Payer (out of office)
2015/01/26 14:52:45
An overflowed marking deque will be full.
|
if (FLAG_trace_incremental_marking) { |
PrintF("[IncrementalMarking] Delaying MarkSweep.\n"); |
} |