mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 637572: Assert that JSScript:: and LazyScript::sourceObject_ are never cross-compartment references. r=billm
This commit is contained in:
parent
97a88673eb
commit
b34dabcabb
@ -818,6 +818,7 @@ js::XDRScript(XDRState<XDR_DECODE> *, HandleObject, HandleScript, HandleFunction
|
||||
void
|
||||
JSScript::setSourceObject(js::ScriptSourceObject *object)
|
||||
{
|
||||
JS_ASSERT(compartment() == object->compartment());
|
||||
sourceObject_ = object;
|
||||
}
|
||||
|
||||
@ -1768,7 +1769,7 @@ JSScript::Create(ExclusiveContext *cx, HandleObject enclosingScope, bool savedCa
|
||||
}
|
||||
script->staticLevel = uint16_t(staticLevel);
|
||||
|
||||
script->sourceObject_ = sourceObject;
|
||||
script->setSourceObject(sourceObject);
|
||||
script->sourceStart = bufStart;
|
||||
script->sourceEnd = bufEnd;
|
||||
|
||||
@ -3038,7 +3039,10 @@ LazyScript::initScript(JSScript *script)
|
||||
void
|
||||
LazyScript::setParent(JSObject *enclosingScope, ScriptSourceObject *sourceObject)
|
||||
{
|
||||
JS_ASSERT(sourceObject && !sourceObject_ && !enclosingScope_);
|
||||
JS_ASSERT(!sourceObject_ && !enclosingScope_);
|
||||
JS_ASSERT_IF(enclosingScope, function_->compartment() == enclosingScope->compartment());
|
||||
JS_ASSERT(function_->compartment() == sourceObject->compartment());
|
||||
|
||||
enclosingScope_ = enclosingScope;
|
||||
sourceObject_ = sourceObject;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user