Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index 9a1df48698cd4e7e84b5e424df26e562a73a95ed..6c670ac53cba367200b2958456cddeb6faad8adc 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -956,10 +956,11 @@ bool Heap::CollectGarbage(GarbageCollector collector, |
} |
} |
- if (collector == MARK_COMPACTOR && !ShouldFinalizeIncrementalMarking() && |
- !ShouldAbortIncrementalMarking() && !incremental_marking()->IsStopped() && |
- !incremental_marking()->should_hurry() && FLAG_incremental_marking && |
- OldGenerationSpaceAvailable() <= 0) { |
+ if (collector == MARK_COMPACTOR && FLAG_incremental_marking && |
+ !ShouldFinalizeIncrementalMarking() && !ShouldAbortIncrementalMarking() && |
+ !incremental_marking()->IsStopped() && |
+ !incremental_marking()->should_hurry() && |
+ !IsCloseToOutOfMemory(new_space_->Capacity())) { |
if (!incremental_marking()->IsComplete() && |
!mark_compact_collector()->marking_deque()->IsEmpty() && |
!FLAG_gc_global) { |