From: hpayer Date: Mon, 26 Jan 2015 14:54:58 +0000 (-0800) Subject: Perform full GC if incremental marking is completed or marking deque is empty. X-Git-Tag: upstream/4.7.83~4768 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e838f705c32c5a40e4618d47f8feaa4ca41757a;p=platform%2Fupstream%2Fv8.git Perform full GC if incremental marking is completed or marking deque is empty. BUG= Review URL: https://codereview.chromium.org/874993003 Cr-Commit-Position: refs/heads/master@{#26272} --- diff --git a/src/heap/heap.cc b/src/heap/heap.cc index d455094..bc55f9e 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) { if (FLAG_trace_incremental_marking) { PrintF("[IncrementalMarking] Delaying MarkSweep.\n"); }