Reorganize bindings methods. Also, properly check error conditions in those methods.

git-svn-id: svn://10.0.0.236/trunk@167699 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
pedemont%us.ibm.com
2005-01-14 00:09:49 +00:00
parent eaa00b45f3
commit 6dc662e1e6
6 changed files with 221 additions and 161 deletions

View File

@@ -334,7 +334,7 @@ SetupParams(JNIEnv *env, const jobject aParam, const nsXPTParamInfo &aParamInfo,
void* xpcom_obj;
if (java_obj) {
// Check if we already have a corresponding XPCOM object
void* inst = GetMatchingXPCOMObject(env, java_obj);
void* inst = gBindings->GetXPCOMObject(env, java_obj);
// Get IID for this param
nsID iid;
@@ -366,7 +366,7 @@ SetupParams(JNIEnv *env, const jobject aParam, const nsXPTParamInfo &aParamInfo,
break;
}
inst = SetAsXPTCStub(xpcomStub);
AddJavaXPCOMBinding(env, java_obj, inst);
gBindings->AddBinding(env, java_obj, inst);
}
if (isWeakRef) {
@@ -670,7 +670,7 @@ FinalizeParams(JNIEnv *env, const jobject aParam,
jobject java_obj = nsnull;
if (xpcom_obj) {
// Find matching Java object for given xpcom object
java_obj = GetMatchingJavaObject(env, xpcom_obj);
java_obj = gBindings->GetJavaObject(env, xpcom_obj);
// If no matching Java object exists, create one
if (java_obj == nsnull) {
@@ -699,7 +699,7 @@ FinalizeParams(JNIEnv *env, const jobject aParam,
if (java_obj) {
// Associate XPCOM object w/ Java stub
AddJavaXPCOMBinding(env, java_obj, inst);
gBindings->AddBinding(env, java_obj, inst);
}
}
}
@@ -889,7 +889,7 @@ SetRetval(JNIEnv *env, const nsXPTParamInfo &aParamInfo,
case nsXPTType::T_INTERFACE_IS:
{
if (aVariant.val.p) {
jobject java_obj = GetMatchingJavaObject(env, aVariant.val.p);
jobject java_obj = gBindings->GetJavaObject(env, aVariant.val.p);
if (java_obj == nsnull) {
nsID iid;
@@ -914,10 +914,9 @@ SetRetval(JNIEnv *env, const nsXPTParamInfo &aParamInfo,
java_obj = CreateJavaWrapper(env, iface_name);
if (java_obj)
AddJavaXPCOMBinding(env, java_obj, inst);
gBindings->AddBinding(env, java_obj, inst);
}
// XXX not sure if this is necessary
// If returned object is an nsJavaXPTCStub, release it.
nsISupports* xpcom_obj = NS_STATIC_CAST(nsISupports*, aVariant.val.p);
nsJavaXPTCStub* stub = nsnull;
@@ -989,7 +988,7 @@ CallXPCOMMethod(JNIEnv *env, jclass that, jobject aJavaObject,
jint aMethodIndex, jobjectArray aParams, jvalue &aResult)
{
// Find corresponding XPCOM object
void* xpcomObj = GetMatchingXPCOMObject(env, aJavaObject);
void* xpcomObj = gBindings->GetXPCOMObject(env, aJavaObject);
if (xpcomObj == nsnull) {
ThrowException(env, 0, "Failed to get matching XPCOM object");
return;
@@ -1008,7 +1007,7 @@ CallXPCOMMethod(JNIEnv *env, jclass that, jobject aJavaObject,
return;
}
#ifdef DEBUG
#ifdef DEBUG_pedemonte
const char* ifaceName;
iinfo->GetNameShared(&ifaceName);
LOG(("=> Calling %s::%s()\n", ifaceName, methodInfo->GetName()));