Bug 636251 - Use JSOPTION_NO_SCRIPT_RVAL in nsFrameMessageManager.cpp, r=jorendorff

This commit is contained in:
Michael Wu 2011-03-25 14:31:14 -07:00
Родитель f1fd210898
Коммит 6651b13d4e
1 изменённых файлов: 8 добавлений и 4 удалений

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

@ -627,10 +627,9 @@ nsFrameScriptExecutor::LoadFrameScriptInternal(const nsAString& aURL)
JSObject* global = nsnull;
mGlobal->GetJSObject(&global);
if (global) {
jsval val;
JS_ExecuteScript(mCx, global,
(JSScript*)JS_GetPrivate(mCx, holder->mObject),
&val);
nsnull);
}
}
JSContext* unused;
@ -682,12 +681,18 @@ nsFrameScriptExecutor::LoadFrameScriptInternal(const nsAString& aURL)
JSPrincipals* jsprin = nsnull;
mPrincipal->GetJSPrincipals(mCx, &jsprin);
nsContentUtils::XPConnect()->FlagSystemFilenamePrefix(url.get(), PR_TRUE);
uint32 oldopts = JS_GetOptions(mCx);
JS_SetOptions(mCx, oldopts | JSOPTION_NO_SCRIPT_RVAL);
JSScript* script =
JS_CompileUCScriptForPrincipals(mCx, nsnull, jsprin,
(jschar*)dataString.get(),
dataString.Length(),
url.get(), 1);
JS_SetOptions(mCx, oldopts);
if (script) {
JSObject* scriptObj = JS_NewScriptObject(mCx, script);
JS_AddObjectRoot(mCx, &scriptObj);
@ -702,9 +707,8 @@ nsFrameScriptExecutor::LoadFrameScriptInternal(const nsAString& aURL)
"Cached message manager script");
sCachedScripts->Put(aURL, holder);
}
jsval val;
JS_ExecuteScript(mCx, global,
(JSScript*)JS_GetPrivate(mCx, scriptObj), &val);
(JSScript*)JS_GetPrivate(mCx, scriptObj), nsnull);
JS_RemoveObjectRoot(mCx, &scriptObj);
}
//XXX Argh, JSPrincipals are manually refcounted!