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

--HG--
extra : rebase_source : 02c19e3831118d3d4703c7904ea0b7228c06261f
This commit is contained in:
Steve Fink 2013-12-11 16:26:37 -08:00
Родитель b31e1049fa
Коммит ab8787514a
1 изменённых файлов: 10 добавлений и 4 удалений

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

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