| Index: src/heap/incremental-marking.cc
|
| diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc
|
| index 947c961af8993d6efc959d4d1c7765a1c2e352a1..f9b7319eb0cfab1a080893f0996967a87d0ee3b2 100644
|
| --- a/src/heap/incremental-marking.cc
|
| +++ b/src/heap/incremental-marking.cc
|
| @@ -16,6 +16,13 @@ namespace v8 {
|
| namespace internal {
|
|
|
|
|
| +IncrementalMarking::StepActions IncrementalMarking::NoForcedStepActions() {
|
| + return StepActions(IncrementalMarking::NO_GC_VIA_STACK_GUARD,
|
| + IncrementalMarking::DO_NOT_FORCE_MARKING,
|
| + IncrementalMarking::DO_NOT_FORCE_COMPLETION);
|
| +}
|
| +
|
| +
|
| IncrementalMarking::IncrementalMarking(Heap* heap)
|
| : heap_(heap),
|
| state_(STOPPED),
|
| @@ -470,9 +477,12 @@ static void PatchIncrementalMarkingRecordWriteStubs(
|
| }
|
|
|
|
|
| -void IncrementalMarking::Start(int mark_compact_flags) {
|
| +void IncrementalMarking::Start(int mark_compact_flags,
|
| + const GCCallbackFlags gc_callback_flags,
|
| + const char* reason) {
|
| if (FLAG_trace_incremental_marking) {
|
| - PrintF("[IncrementalMarking] Start\n");
|
| + PrintF("[IncrementalMarking] Start (%s)\n",
|
| + (reason == nullptr) ? "unknown reason" : reason);
|
| }
|
| DCHECK(FLAG_incremental_marking);
|
| DCHECK(FLAG_incremental_marking_steps);
|
| @@ -482,6 +492,7 @@ void IncrementalMarking::Start(int mark_compact_flags) {
|
|
|
| ResetStepCounters();
|
|
|
| + gc_callback_flags_ = gc_callback_flags;
|
| was_activated_ = true;
|
|
|
| if (!heap_->mark_compact_collector()->sweeping_in_progress()) {
|
| @@ -824,7 +835,7 @@ void IncrementalMarking::Epilogue() {
|
|
|
| void IncrementalMarking::OldSpaceStep(intptr_t allocated) {
|
| if (IsStopped() && ShouldActivateEvenWithoutIdleNotification()) {
|
| - Start(Heap::kNoGCFlags);
|
| + Start(Heap::kNoGCFlags, kNoGCCallbackFlags, "old space step");
|
| } else {
|
| Step(allocated * kFastMarking / kInitialMarkingSpeed, GC_VIA_STACK_GUARD);
|
| }
|
|
|