| 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) {
|
|
|