Bug 1514520 - Gray unmarking shouldn't check whether barriers are enable as it can be called from within the GC r=sfink

This commit is contained in:
Jon Coppeard 2018-12-18 07:14:56 +00:00
Родитель bf16d881ed
Коммит c1891f84d7
1 изменённых файлов: 1 добавлений и 2 удалений

Просмотреть файл

@ -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;
}