From c1891f84d764eb191ac48f623c8b492ba4f778e0 Mon Sep 17 00:00:00 2001 From: Jon Coppeard Date: Tue, 18 Dec 2018 07:14:56 +0000 Subject: [PATCH] Bug 1514520 - Gray unmarking shouldn't check whether barriers are enable as it can be called from within the GC r=sfink --- js/src/gc/Marking.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/js/src/gc/Marking.cpp b/js/src/gc/Marking.cpp index c1058c40bb2a..c6e7e6b9dd08 100644 --- a/js/src/gc/Marking.cpp +++ b/js/src/gc/Marking.cpp @@ -3546,7 +3546,7 @@ void UnmarkGrayTracer::onChild(const JS::GCCellPtr& thing) { // case, push any cells in zones that are currently being marked onto the // mark stack and they will eventually get marked black. Zone* zone = tenured.zone(); - if (zone->needsIncrementalBarrier()) { + if (zone->isGCMarkingBlackAndGray()) { if (!cell->isMarkedBlack()) { Cell* tmp = cell; TraceManuallyBarrieredGenericPointerEdge(zone->barrierTracer(), &tmp, @@ -3557,7 +3557,6 @@ void UnmarkGrayTracer::onChild(const JS::GCCellPtr& thing) { return; } - MOZ_ASSERT(!zone->isGCMarkingBlackAndGray()); if (!tenured.isMarkedGray()) { return; }