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:
Steve Fink 2013-05-02 10:01:16 -07:00
Родитель 95d647cc40
Коммит 14b771d863
1 изменённых файлов: 7 добавлений и 4 удалений

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

@ -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)