Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index 55fdac749758af9060e72c15583105640be3f017..749389ba56176aa1d6a7d1ad037e71ac7bd0701c 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -2020,8 +2020,8 @@ void MarkCompactCollector::ProcessMarkingDeque() { |
// stack including references only considered in the atomic marking pause. |
void MarkCompactCollector::ProcessEphemeralMarking( |
ObjectVisitor* visitor, bool only_process_harmony_weak_collections) { |
- bool work_to_do = true; |
DCHECK(marking_deque_.IsEmpty() && !marking_deque_.overflowed()); |
+ bool work_to_do = true; |
while (work_to_do) { |
if (UsingEmbedderHeapTracer()) { |
embedder_heap_tracer()->TraceWrappersFrom(wrappers_to_trace_); |
@@ -2219,9 +2219,9 @@ void MarkCompactCollector::MarkLiveObjects() { |
GCTracer::Scope::MC_MARK_WEAK_CLOSURE_EPHEMERAL); |
if (UsingEmbedderHeapTracer()) { |
embedder_heap_tracer()->TracePrologue(); |
+ ProcessMarkingDeque(); |
} |
ProcessEphemeralMarking(&root_visitor, false); |
- ProcessMarkingDeque(); |
} |
// The objects reachable from the roots, weak maps or object groups |
@@ -2255,7 +2255,6 @@ void MarkCompactCollector::MarkLiveObjects() { |
{ |
TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_MARK_WEAK_CLOSURE_HARMONY); |
ProcessEphemeralMarking(&root_visitor, true); |
- ProcessMarkingDeque(); |
if (UsingEmbedderHeapTracer()) { |
embedder_heap_tracer()->TraceEpilogue(); |
} |