зеркало из https://github.com/mozilla/gecko-dev.git
No bug. Fix rooting static analysis annotation for GetWeakmapKeyDelegate and document the ignores. r=NPOTB
DONTBUILD because NPOTB. --HG-- extra : rebase_source : e645ae12a83e55320c44e900ecf2769a1e12e851
This commit is contained in:
Родитель
95d647cc40
Коммит
14b771d863
|
@ -2,6 +2,7 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
// Ignore calls made through these function pointers
|
||||
var ignoreIndirectCalls = {
|
||||
"mallocSizeOf" : true,
|
||||
"aMallocSizeOf" : true,
|
||||
|
@ -10,10 +11,8 @@ var ignoreIndirectCalls = {
|
|||
"__convf" : true,
|
||||
"prerrortable.c:callback_newtable" : true,
|
||||
"mozalloc_oom.cpp:void (* gAbortHandler)(size_t)" : true,
|
||||
"JSObject* js::GetWeakmapKeyDelegate(JSObject*)" : true, // FIXME: mark with AutoAssertNoGC instead
|
||||
};
|
||||
|
||||
|
||||
function indirectCallCannotGC(caller, name)
|
||||
{
|
||||
if (name in ignoreIndirectCalls)
|
||||
|
@ -32,7 +31,7 @@ function indirectCallCannotGC(caller, name)
|
|||
return false;
|
||||
}
|
||||
|
||||
// classes to ignore indirect calls on.
|
||||
// Ignore calls through functions pointers with these types
|
||||
var ignoreClasses = {
|
||||
"JSTracer" : true,
|
||||
"JSStringFinalizer" : true,
|
||||
|
@ -44,6 +43,8 @@ var ignoreClasses = {
|
|||
"_MD_IOVector" : true,
|
||||
};
|
||||
|
||||
// Ignore calls through TYPE.FIELD, where TYPE is the class or struct name containing
|
||||
// a function pointer field named FIELD.
|
||||
var ignoreCallees = {
|
||||
"js::Class.trace" : true,
|
||||
"js::Class.finalize" : true,
|
||||
|
@ -96,11 +97,13 @@ function ignoreEdgeUse(edge, variable)
|
|||
return false;
|
||||
}
|
||||
|
||||
// Ignore calls of these functions (so ignore any stack containing these)
|
||||
var ignoreFunctions = {
|
||||
"ptio.c:pt_MapError" : true,
|
||||
"PR_ExplodeTime" : true,
|
||||
"PR_ErrorInstallTable" : true,
|
||||
"PR_SetThreadPrivate" : true
|
||||
"PR_SetThreadPrivate" : true,
|
||||
"JSObject* js::GetWeakmapKeyDelegate(JSObject*)" : true, // FIXME: mark with AutoAssertNoGC instead
|
||||
};
|
||||
|
||||
function ignoreGCFunction(fun)
|
||||
|
|
Загрузка…
Ссылка в новой задаче