Merge duplicate code.

git-svn-id: svn://10.0.0.236/trunk@168087 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
pedemont%us.ibm.com
2005-01-20 22:07:26 +00:00
parent 07472dabed
commit 7eda29fd91
6 changed files with 144 additions and 231 deletions

View File

@@ -821,36 +821,17 @@ nsJavaXPTCStub::SetupJavaParams(const nsXPTParamInfo &aParamInfo,
jobject java_stub = nsnull;
if (xpcom_obj) {
java_stub = gBindings->GetJavaObject(mJavaEnv, xpcom_obj);
nsID iid;
rv = GetIIDForMethodParam(mIInfo, aMethodInfo, aParamInfo, aMethodIndex,
aDispatchParams, PR_FALSE, iid);
if (NS_FAILED(rv))
break;
if (java_stub == nsnull) {
// wrap xpcom instance
nsID iid;
rv = GetIIDForMethodParam(mIInfo, aMethodInfo, aParamInfo,
aMethodIndex, aDispatchParams,
PR_FALSE, iid);
if (NS_FAILED(rv))
break;
JavaXPCOMInstance* inst;
rv = CreateJavaXPCOMInstance((nsISupports*) xpcom_obj, &iid, &inst);
if (NS_FAILED(rv))
break;
// create java stub
char* iface_name;
rv = inst->InterfaceInfo()->GetName(&iface_name);
if (NS_FAILED(rv))
break;
java_stub = CreateJavaWrapper(mJavaEnv, iface_name);
if (java_stub) {
// Associate XPCOM object w/ Java stub
rv = gBindings->AddBinding(mJavaEnv, java_stub, inst);
if (NS_FAILED(rv))
break;
}
}
// Get matching Java object for given xpcom object
rv = gBindings->GetJavaObject(mJavaEnv, xpcom_obj, iid, PR_FALSE,
&java_stub);
if (NS_FAILED(rv))
break;
}
if (!aParamInfo.IsOut()) { // 'in'