Bug 1570161 - do not attempt to mark things gray if they cannot be marked gray r=jonco

Differential Revision: https://phabricator.services.mozilla.com/D41468

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Steve Fink 2019-08-10 07:48:51 +00:00
Родитель 8a60021cf3
Коммит a1032d4fd8
1 изменённых файлов: 5 добавлений и 2 удалений

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

@ -2582,8 +2582,11 @@ void GCMarker::delayMarkingChildren(Cell* cell) {
markLaterArenas++;
#endif
}
if (!arena->hasDelayedMarking(color)) {
arena->setHasDelayedMarking(color, true);
JS::TraceKind kind = MapAllocToTraceKind(arena->getAllocKind());
MarkColor colorToMark =
TraceKindCanBeMarkedGray(kind) ? color : MarkColor::Black;
if (!arena->hasDelayedMarking(colorToMark)) {
arena->setHasDelayedMarking(colorToMark, true);
delayedMarkingWorkAdded = true;
}
}