Index: src/heap/incremental-marking.cc |
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc |
index 0c0f5b408ee5ae573dcdc8f533e7ad9d3987f620..0e4a568325969ef9b27e1161c2fbeaaf62f84460 100644 |
--- a/src/heap/incremental-marking.cc |
+++ b/src/heap/incremental-marking.cc |
@@ -1201,6 +1201,19 @@ intptr_t IncrementalMarking::Step(intptr_t allocated_bytes, |
if (state_ == MARKING) { |
bytes_processed = ProcessMarkingDeque(bytes_to_process); |
+ if (FLAG_incremental_marking_wrappers && |
+ heap_->UsingEmbedderHeapTracer()) { |
+ // This currently marks through all registered wrappers and does not |
+ // respect bytes_to_priocess. |
Michael Lippautz
2016/08/16 12:50:34
nit: s/bytes_to_priocess/bytes_to_process/
|
+ // TODO(hpayer): Integrate incremental marking of wrappers into |
+ // bytes_to_process logic. |
+ heap_->mark_compact_collector() |
+ ->RegisterWrappersWithEmbedderHeapTracer(); |
+ heap_->mark_compact_collector()->embedder_heap_tracer()->AdvanceTracing( |
+ 0, |
+ EmbedderHeapTracer::AdvanceTracingActions( |
+ EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION)); |
+ } |
if (heap_->mark_compact_collector()->marking_deque()->IsEmpty()) { |
if (completion == FORCE_COMPLETION || |
IsIdleMarkingDelayCounterLimitReached()) { |