# HG changeset patch # User Rik # Date 1363188496 25200 # Node ID 4a1300ed5d3cd07b87f38529256a36c699aa02f5 # Parent 0925d1f6875e3fcf4cdff3c495d3a2bc08384bad Convert logical class to Java Boolean class when passing args to Java functions. * libinterp/octave-value/ov-java.cc(unbox): Move check for bool type under check for is_real_scalar which includes double, float, and bool types. diff --git a/libinterp/octave-value/ov-java.cc b/libinterp/octave-value/ov-java.cc --- a/libinterp/octave-value/ov-java.cc +++ b/libinterp/octave-value/ov-java.cc @@ -1224,6 +1224,15 @@ jcls = reinterpret_cast (jni_env->GetStaticObjectField (dcls, fid)); jobj = jni_env->NewObject (dcls, mid, dval); } + else if (val.is_bool_type ()) + { + bool bval = val.bool_value (); + jclass_ref bcls (jni_env, jni_env->FindClass ("java/lang/Boolean")); + jfieldID fid = jni_env->GetStaticFieldID (bcls, "TYPE", "Ljava/lang/Class;"); + jmethodID mid = jni_env->GetMethodID (bcls, "", "(Z)V"); + jcls = reinterpret_cast (jni_env->GetStaticObjectField (bcls, fid)); + jobj = jni_env->NewObject (bcls, mid, bval); + } else { float fval = val.float_scalar_value (); @@ -1243,15 +1252,6 @@ jcls = reinterpret_cast (jni_env->GetStaticObjectField (icls, fid)); jobj = jni_env->NewObject (icls, mid, ival); } - else if (val.is_bool_scalar ()) - { - bool bval = val.bool_value (); - jclass_ref bcls (jni_env, jni_env->FindClass ("java/lang/Boolean")); - jfieldID fid = jni_env->GetStaticFieldID (bcls, "TYPE", "Ljava/lang/Class;"); - jmethodID mid = jni_env->GetMethodID (bcls, "", "(Z)V"); - jcls = reinterpret_cast (jni_env->GetStaticObjectField (bcls, fid)); - jobj = jni_env->NewObject (bcls, mid, bval); - } else if (val.is_empty ()) { jobj = 0;