changeset 16295:4a1300ed5d3c

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.
author Rik <rik@octave.org>
date Wed, 13 Mar 2013 08:28:16 -0700
parents 0925d1f6875e
children ef39f8b1c5c8
files libinterp/octave-value/ov-java.cc
diffstat 1 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/octave-value/ov-java.cc	Wed Mar 13 03:19:35 2013 -0400
+++ b/libinterp/octave-value/ov-java.cc	Wed Mar 13 08:28:16 2013 -0700
@@ -1224,6 +1224,15 @@
           jcls = reinterpret_cast<jclass> (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, "<init>", "(Z)V");
+          jcls = reinterpret_cast<jclass> (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<jclass> (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, "<init>", "(Z)V");
-      jcls = reinterpret_cast<jclass> (jni_env->GetStaticObjectField (bcls, fid));
-      jobj = jni_env->NewObject (bcls, mid, bval);
-   }
   else if (val.is_empty ())
     {
       jobj = 0;