зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1479673 - Disable the analysis while calling function pointers during tracing, r=me.
Fixes a hazard introduced by allowing the analysis to correctly see through more of the callgraph. --HG-- extra : topic : hazard extra : rebase_source : a2b20f3a4c5127c502c1402ca9abbd1e2ad0d382
This commit is contained in:
Родитель
91f4fe8c61
Коммит
45873100f5
|
@ -116,6 +116,10 @@ JS_FOR_EACH_TRACEKIND(TRACE_ROOTS)
|
|||
#undef TRACE_ROOTS
|
||||
TracePersistentRootedList<jsid>(trc, heapRoots.ref()[JS::RootKind::Id], "persistent-id");
|
||||
TracePersistentRootedList<Value>(trc, heapRoots.ref()[JS::RootKind::Value], "persistent-value");
|
||||
|
||||
// ConcreteTraceable calls through a function pointer.
|
||||
JS::AutoSuppressGCAnalysis nogc;
|
||||
|
||||
TracePersistentRootedList<ConcreteTraceable>(
|
||||
trc, heapRoots.ref()[JS::RootKind::Traceable], "persistent-traceable");
|
||||
}
|
||||
|
@ -391,6 +395,9 @@ js::gc::GCRuntime::traceRuntimeCommon(JSTracer* trc, TraceOrMarkRuntime traceOrM
|
|||
if (!JS::RuntimeHeapIsMinorCollecting()) {
|
||||
gcstats::AutoPhase ap(stats(), gcstats::PhaseKind::MARK_EMBEDDING);
|
||||
|
||||
// The analysis doesn't like the function pointers below.
|
||||
JS::AutoSuppressGCAnalysis nogc;
|
||||
|
||||
/*
|
||||
* The embedding can register additional roots here.
|
||||
*
|
||||
|
|
Загрузка…
Ссылка в новой задаче