From cddaef5f7b6ea0e724bdf1edda4b1f47510bbd17 Mon Sep 17 00:00:00 2001 From: "pedemont%us.ibm.com" Date: Wed, 27 Sep 2006 15:17:06 +0000 Subject: [PATCH] Fix memory leaks. Make JavaXPCOMInstance hold ref to XPCOM object. Original committer: pedemont%us.ibm.com Original revision: 1.10 Original date: 2004/10/27 17:10:03 git-svn-id: svn://10.0.0.236/trunk@212582 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp b/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp index 5d2e71effb2..143be60aa4a 100644 --- a/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp +++ b/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp @@ -649,7 +649,10 @@ FinalizeParams(JNIEnv *env, const jobject aParam, if (NS_FAILED(rv)) return rv; - inst = CreateJavaXPCOMInstance((nsISupports*) aVariant.val.p, &iid); + nsISupports* variant = + NS_REINTERPRET_CAST(nsISupports*, aVariant.val.p); + inst = CreateJavaXPCOMInstance(variant, &iid); + NS_RELEASE(variant); // JavaXPCOMInstance has owning ref if (inst) { // create java stub @@ -816,7 +819,10 @@ SetRetval(JNIEnv *env, const nsXPTParamInfo &aParamInfo, if (NS_FAILED(rv)) return rv; - inst = CreateJavaXPCOMInstance((nsISupports*) aVariant.val.p, &iid); + nsISupports* variant = + NS_REINTERPRET_CAST(nsISupports*, aVariant.val.p); + inst = CreateJavaXPCOMInstance(variant, &iid); + NS_RELEASE(variant); // JavaXPCOMInstance has owning ref if (inst) { // create java stub