Index: src/incremental-marking.cc |
diff --git a/src/incremental-marking.cc b/src/incremental-marking.cc |
index d0d3354b800e3eb5f228f7bde7a941bddef6ad9f..c20becaf1d8c85dd31fca87f3e5b7e98f35d0afb 100644 |
--- a/src/incremental-marking.cc |
+++ b/src/incremental-marking.cc |
@@ -50,7 +50,8 @@ IncrementalMarking::IncrementalMarking(Heap* heap) |
steps_took_since_last_gc_(0), |
should_hurry_(false), |
allocation_marking_factor_(0), |
- allocated_(0) { |
+ allocated_(0), |
+ no_marking_scope_depth_(0) { |
} |
@@ -702,6 +703,8 @@ void IncrementalMarking::Step(intptr_t allocated_bytes) { |
if (allocated_ < kAllocatedThreshold) return; |
+ if (state_ == MARKING && no_marking_scope_depth_ > 0) return; |
+ |
intptr_t bytes_to_process = allocated_ * allocation_marking_factor_; |
double start = 0; |