Bug 1428507 - Avoid non-inlinable GCCellPtr constructing during tracing, r=jonco

--HG--
extra : rebase_source : ba495b925540ba986677fc579a7182fe6a2cf7cf
This commit is contained in:
Steve Fink 2018-01-05 16:50:39 -08:00
Родитель 4eaec4d64b
Коммит 2b55dba109
1 изменённых файлов: 3 добавлений и 1 удалений

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

@ -1774,7 +1774,9 @@ GCMarker::processMarkStackTop(SliceBudget& budget)
} else if (v.isSymbol()) {
traverseEdge(obj, v.toSymbol());
} else if (v.isPrivateGCThing()) {
traverseEdge(obj, v.toGCCellPtr());
// v.toGCCellPtr cannot be inlined, so construct one manually.
Cell* cell = v.toGCThing();
traverseEdge(obj, JS::GCCellPtr(cell, cell->getTraceKind()));
}
}
return;