From 00e35cdd46ec1f787d40e670ed048a869ac73166 Mon Sep 17 00:00:00 2001 From: "pedemont%us.ibm.com" Date: Wed, 27 Sep 2006 15:13:48 +0000 Subject: [PATCH] Properly implement T_VOID in SetRetval. Not part of default build. Original committer: pedemont%us.ibm.com Original revision: 1.2 Original date: 2004/09/15 16:57:08 git-svn-id: svn://10.0.0.236/trunk@212537 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp b/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp index a5a0ee8cd80..4159d04dd40 100644 --- a/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp +++ b/mozilla/extensions/java/xpcom/src/nsJavaWrapper.cpp @@ -454,7 +454,7 @@ SetupParams(JNIEnv *env, const jobject aParam, { if (env->IsInstanceOf(aParam, intArrayClass)) { - LOG("int[] (void)"); + LOG("int[] (void*)"); jboolean isCopy = JNI_FALSE; jint* buf = nsnull; if (aParam) { @@ -467,7 +467,7 @@ SetupParams(JNIEnv *env, const jobject aParam, aVariant.flags |= nsXPTCVariant::VAL_IS_ALLOCD; } } else { - LOG("int (void)"); + LOG("int (void*)"); NS_ASSERTION(type.IsPointer(), "T_VOID 'int' handler received non-pointer type"); aVariant.val.p = (void*) env->CallIntMethod(aParam, intValueMID); } @@ -880,16 +880,16 @@ SetRetval(JNIEnv *env, } break; - // XXX not sure about this one case nsXPTType::T_VOID: - aResult.l = (jobject) aVariant.ptr; + // handle "void *" as an "int" in Java + LOG(" returns int (void*)"); + aResult.i = (jint) aVariant.val.p; + break; case nsXPTType::T_ARRAY: NS_WARNING("array types are not yet supported"); return NS_ERROR_NOT_IMPLEMENTED; - case nsXPTType::T_PSTRING_SIZE_IS: - case nsXPTType::T_PWSTRING_SIZE_IS: default: NS_WARNING("unexpected parameter type"); return NS_ERROR_UNEXPECTED;