[PATCH] mfsa2006-32 (Part 5/7), 327712
Alexander Sack
asac at debian.org
Sun Jun 18 12:13:07 UTC 2006
From: Alexander Sack <asac at hanson.localdomain>
---
content/xbl/src/nsXBLProtoImplProperty.cpp | 20 ++++++++++++++++++--
1 files changed, 18 insertions(+), 2 deletions(-)
ecbd711fde7736c155c661f2684677011397a062
diff --git a/content/xbl/src/nsXBLProtoImplProperty.cpp b/content/xbl/src/nsXBLProtoImplProperty.cpp
index 59f0248..96e50cd 100644
--- a/content/xbl/src/nsXBLProtoImplProperty.cpp
+++ b/content/xbl/src/nsXBLProtoImplProperty.cpp
@@ -164,18 +164,34 @@ nsXBLProtoImplProperty::InstallMember(ns
if (mJSGetterObject)
if (!(getter = ::JS_CloneFunctionObject(cx, mJSGetterObject, globalObject)))
return NS_ERROR_OUT_OF_MEMORY;
-
+
+ nsresult rv;
+ rv = AddJSGCRoot(&getter, "nsAutoGCRoot");
+ NS_ENSURE_SUCCESS(rv, rv);
+
JSObject * setter = nsnull;
if (mJSSetterObject)
- if (!(setter = ::JS_CloneFunctionObject(cx, mJSSetterObject, globalObject)))
+ if (!(setter = ::JS_CloneFunctionObject(cx, mJSSetterObject, globalObject)))
+ {
+ RemoveJSGCRoot(&getter);
return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ rv = AddJSGCRoot(&setter, "nsAutoGCRoot");
+ NS_ENSURE_SUCCESS(rv, rv);
nsDependentString name(mName);
if (!::JS_DefineUCProperty(cx, targetClassObject,
NS_REINTERPRET_CAST(const jschar*, mName),
name.Length(), JSVAL_VOID, (JSPropertyOp) getter,
(JSPropertyOp) setter, mJSAttributes))
+ {
+ RemoveJSGCRoot(&setter);
return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ RemoveJSGCRoot(&getter);
+ RemoveJSGCRoot(&setter);
}
return NS_OK;
}
--
1.3.3
More information about the pkg-mozilla-maintainers
mailing list