Fix memory leaks. Make JavaXPCOMInstance hold ref to XPCOM object.

This commit is contained in:
pedemont@us.ibm.com
2004-10-27 17:10:03 +00:00
parent 1da41b2f61
commit 9056a66f77
5 changed files with 39 additions and 23 deletions

View File

@@ -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