Commit 194a04d7 authored by hlopko's avatar hlopko Committed by Commit bot

We need to empty the deque after EmbedderHeapTracer::TracePrologue, and we...

We need to empty the deque after EmbedderHeapTracer::TracePrologue, and we don't have to empty the deque after ProcessEphemeralMarking, as the deque should be empty already.

BUG=468240
LOG=no

Review URL: https://codereview.chromium.org/1900783002

Cr-Commit-Position: refs/heads/master@{#35654}
parent 59d08247
......@@ -2047,8 +2047,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_);
......@@ -2246,9 +2246,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
......@@ -2282,7 +2282,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();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment