mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 872185 - Annotate a couple of rooting analysis false positives r=sfink
This commit is contained in:
parent
2f6b68ae57
commit
2a7dbf9c88
@ -63,6 +63,7 @@ var ignoreCallees = {
|
||||
"js::ion::MDefinition.opName" : true, // macro generated virtuals just return a constant
|
||||
"js::ion::LInstruction.getDef" : true, // virtual but no implementation can GC
|
||||
"js::ion::IonCache.kind" : true, // macro generated virtuals just return a constant
|
||||
"icu_50::UObject.__deleting_dtor" : true, // destructors in ICU code can't cause GC
|
||||
};
|
||||
|
||||
function fieldCallCannotGC(csu, fullfield)
|
||||
@ -133,7 +134,8 @@ function isRootedTypeName(name)
|
||||
{
|
||||
if (name == "mozilla::ErrorResult" ||
|
||||
name == "js::frontend::TokenStream" ||
|
||||
name == "js::frontend::TokenStream::Position")
|
||||
name == "js::frontend::TokenStream::Position" ||
|
||||
name == "ModuleCompiler")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -436,7 +436,7 @@ class StrictModeGetter {
|
||||
//
|
||||
// The methods seek() and tell() allow to rescan from a previous visited
|
||||
// location of the buffer.
|
||||
class TokenStream
|
||||
class MOZ_STACK_CLASS TokenStream
|
||||
{
|
||||
/* Unicode separators that are treated as line terminators, in addition to \n, \r */
|
||||
enum {
|
||||
|
@ -894,7 +894,16 @@ typedef Vector<MBasicBlock*,16> CaseVector;
|
||||
// to add a new exit or reuse an existing one. The key is an ExitDescriptor
|
||||
// (which holds the exit pairing) and the value is an index into the
|
||||
// Vector<Exit> stored in the AsmJSModule.
|
||||
class ModuleCompiler
|
||||
//
|
||||
// Rooting note: ModuleCompiler is a stack class that contains unrooted
|
||||
// PropertyName (JSAtom) pointers. This is safe because it cannot be
|
||||
// constructed without a TokenStream reference. TokenStream is itself a stack
|
||||
// class that cannot be constructed without an AutoKeepAtoms being live on the
|
||||
// stack, which prevents collection of atoms.
|
||||
//
|
||||
// ModuleCompiler is marked as rooted in the rooting analysis. Don't add
|
||||
// non-JSAtom pointers, or this will break!
|
||||
class MOZ_STACK_CLASS ModuleCompiler
|
||||
{
|
||||
public:
|
||||
class Func
|
||||
|
Loading…
Reference in New Issue
Block a user