Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index a1736e9728a13ef05dff6e0c7da218d26cf271ca..aaa65f5e96a5fb28d312506fc5bafa9041c3c227 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -857,9 +857,18 @@ void MarkCompactCollector::Prepare() { |
AbortWeakCells(); |
AbortTransitionArrays(); |
AbortCompaction(); |
+ if (heap_->UsingEmbedderHeapTracer()) { |
+ heap_->mark_compact_collector()->embedder_heap_tracer()->AbortTracing(); |
+ } |
was_marked_incrementally_ = false; |
} |
+ if (!was_marked_incrementally_) { |
+ if (heap_->UsingEmbedderHeapTracer()) { |
+ heap_->mark_compact_collector()->embedder_heap_tracer()->TracePrologue(); |
+ } |
+ } |
+ |
// Don't start compaction if we are in the middle of incremental |
// marking cycle. We did not collect any slots. |
if (!FLAG_never_compact && !was_marked_incrementally_) { |
@@ -2320,10 +2329,6 @@ void MarkCompactCollector::MarkLiveObjects() { |
{ |
TRACE_GC(heap()->tracer(), |
GCTracer::Scope::MC_MARK_WEAK_CLOSURE_EPHEMERAL); |
- if (UsingEmbedderHeapTracer()) { |
- embedder_heap_tracer()->TracePrologue(); |
- ProcessMarkingDeque(); |
- } |
ProcessEphemeralMarking(&root_visitor, false); |
} |