Mercurial > hg > octave-lyh
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 +++ 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;