Index: src/heap/incremental-marking.cc |
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
index 0a7e9c9584db27f6783e66f918eba88c3bb233a3..22051eaab2d5793681dbd6ba3df3ccfd1495dfec 100644 |
--- a/src/heap/incremental-marking.cc |
+++ b/src/heap/incremental-marking.cc |
@@ -825,16 +825,10 @@ |
void IncrementalMarking::OldSpaceStep(intptr_t allocated) { |
- // If we are stressing the GC, then always return the bump allocation area to |
- // the free list here, which will cause a crash if the top and limit are not |
- // up to date. |
- if (FLAG_gc_interval != -1) { |
- heap()->old_space()->ReturnLinearAllocationAreaToFreeList(); |
- } |
if (IsStopped() && ShouldActivateEvenWithoutIdleNotification()) { |
Start(Heap::kNoGCFlags); |
} else { |
- Step(allocated * kOldSpaceAllocationMarkingFactor, GC_VIA_STACK_GUARD); |
+ Step(allocated * kFastMarking / kInitialMarkingSpeed, GC_VIA_STACK_GUARD); |
} |
} |
@@ -916,7 +910,8 @@ |
ForceMarkingAction marking, |
ForceCompletionAction completion) { |
if (heap_->gc_state() != Heap::NOT_IN_GC || !FLAG_incremental_marking || |
- !CanDoSteps()) { |
+ !FLAG_incremental_marking_steps || |
+ (state_ != SWEEPING && state_ != MARKING)) { |
return 0; |
} |