Bug 949108 - Rooting hazards in nsScriptLoader.cpp due to AutoPushJSContext, r=bz

This commit is contained in:
Steve Fink 2013-12-11 12:15:07 -08:00
parent f9166936cb
commit ee8f34ec1c

View File

@ -789,8 +789,10 @@ nsScriptLoader::AttemptAsyncScriptParse(nsScriptLoadRequest* aRequest)
if (!context) {
return NS_ERROR_FAILURE;
}
AutoPushJSContext cx(context->GetNativeContext());
JS::Rooted<JSObject*> global(cx, unrootedGlobal);
JSContext* unpushedCx = context->GetNativeContext();
JS::Rooted<JSObject*> global(unpushedCx, unrootedGlobal);
AutoPushJSContext cx(unpushedCx);
JS::CompileOptions options(cx);
FillCompileOptionsForRequest(aRequest, global, &options);
@ -1002,8 +1004,10 @@ nsScriptLoader::EvaluateScript(nsScriptLoadRequest* aRequest,
if (!context) {
return NS_ERROR_FAILURE;
}
AutoPushJSContext cx(context->GetNativeContext());
JS::Rooted<JSObject*> global(cx, unrootedGlobal);
JSContext* unpushedCx = context->GetNativeContext();
JS::Rooted<JSObject*> global(unpushedCx, unrootedGlobal);
AutoPushJSContext cx(unpushedCx);
bool oldProcessingScriptTag = context->GetProcessingScriptTag();
context->SetProcessingScriptTag(true);