Index: src/incremental-marking.h |
diff --git a/src/incremental-marking.h b/src/incremental-marking.h |
index 4f8fa6b1275b0995a919503972c6ed8b360daaa5..8cbe6c18e7bd5631709982770ae35dfd02f6426c 100644 |
--- a/src/incremental-marking.h |
+++ b/src/incremental-marking.h |
@@ -46,6 +46,11 @@ class IncrementalMarking { |
COMPLETE |
}; |
+ enum CompletionAction { |
+ GC_VIA_STACK_GUARD, |
+ NO_GC_VIA_STACK_GUARD |
+ }; |
+ |
explicit IncrementalMarking(Heap* heap); |
void TearDown(); |
@@ -82,7 +87,7 @@ class IncrementalMarking { |
void Abort(); |
- void MarkingComplete(); |
+ void MarkingComplete(CompletionAction action); |
// It's hard to know how much work the incremental marker should do to make |
// progress in the face of the mutator creating new work for it. We start |
@@ -102,10 +107,11 @@ class IncrementalMarking { |
static const intptr_t kMaxAllocationMarkingFactor = 1000; |
void OldSpaceStep(intptr_t allocated) { |
- Step(allocated * kFastMarking / kInitialAllocationMarkingFactor); |
+ Step(allocated * kFastMarking / kInitialAllocationMarkingFactor, |
+ GC_VIA_STACK_GUARD); |
} |
- void Step(intptr_t allocated); |
+ void Step(intptr_t allocated, CompletionAction action); |
inline void RestartIfNotMarking() { |
if (state_ == COMPLETE) { |