Properly implement T_VOID in SetRetval. Not part of default build.

git-svn-id: svn://10.0.0.236/trunk@162367 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
pedemont%us.ibm.com
2004-09-15 16:57:08 +00:00
parent 3ef1a3e62f
commit fa8f45e1a1

View File

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