Mercurial > hg > octave-lyh
diff libinterp/octave-value/ov-java.cc @ 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 | 9439f3b5c5fa |
children | 7268845c0a1e |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-java.cc +++ b/libinterp/octave-value/ov-java.cc @@ -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;