Bug 896506 - GC: Fix a couple of rooting hazards in XUL code r=smaug

This commit is contained in:
Jon Coppeard 2013-07-23 10:58:28 +01:00
parent 40af0d6a36
commit aa621befb3
2 changed files with 4 additions and 14 deletions

View File

@ -197,11 +197,7 @@ nsXULPrototypeCache::PutStyleSheet(nsCSSStyleSheet* aStyleSheet)
JSScript*
nsXULPrototypeCache::GetScript(nsIURI* aURI)
{
JSScript* script;
if (!mScriptTable.Get(aURI, &script)) {
return nullptr;
}
return script;
return mScriptTable.Get(aURI);
}
nsresult
@ -209,8 +205,7 @@ nsXULPrototypeCache::PutScript(nsIURI* aURI,
JS::Handle<JSScript*> aScriptObject)
{
#ifdef DEBUG
JSScript* existingScript;
if (mScriptTable.Get(aURI, &existingScript)) {
if (JSScript* existingScript = mScriptTable.Get(aURI)) {
nsAutoCString scriptName;
aURI->GetSpec(scriptName);
nsAutoCString message("Loaded script ");

View File

@ -89,13 +89,8 @@ uint32_t nsXULPrototypeDocument::gRefCnt;
void
nsXULPDGlobalObject_finalize(JSFreeOp *fop, JSObject *obj)
{
nsISupports *nativeThis = (nsISupports*)JS_GetPrivate(obj);
nsCOMPtr<nsIScriptGlobalObject> sgo(do_QueryInterface(nativeThis));
if (sgo) {
sgo->OnFinalize(obj);
}
nsXULPDGlobalObject* nativeThis = static_cast<nsXULPDGlobalObject*>(JS_GetPrivate(obj));
nativeThis->OnFinalize(obj);
// The addref was part of JSObject construction
NS_RELEASE(nativeThis);