Mercurial > hg > octave-nkf
comparison 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 |
comparison
equal
deleted
inserted
replaced
16294:0925d1f6875e | 16295:4a1300ed5d3c |
---|---|
1222 jfieldID fid = jni_env->GetStaticFieldID (dcls, "TYPE", "Ljava/lang/Class;"); | 1222 jfieldID fid = jni_env->GetStaticFieldID (dcls, "TYPE", "Ljava/lang/Class;"); |
1223 jmethodID mid = jni_env->GetMethodID (dcls, "<init>", "(D)V"); | 1223 jmethodID mid = jni_env->GetMethodID (dcls, "<init>", "(D)V"); |
1224 jcls = reinterpret_cast<jclass> (jni_env->GetStaticObjectField (dcls, fid)); | 1224 jcls = reinterpret_cast<jclass> (jni_env->GetStaticObjectField (dcls, fid)); |
1225 jobj = jni_env->NewObject (dcls, mid, dval); | 1225 jobj = jni_env->NewObject (dcls, mid, dval); |
1226 } | 1226 } |
1227 else if (val.is_bool_type ()) | |
1228 { | |
1229 bool bval = val.bool_value (); | |
1230 jclass_ref bcls (jni_env, jni_env->FindClass ("java/lang/Boolean")); | |
1231 jfieldID fid = jni_env->GetStaticFieldID (bcls, "TYPE", "Ljava/lang/Class;"); | |
1232 jmethodID mid = jni_env->GetMethodID (bcls, "<init>", "(Z)V"); | |
1233 jcls = reinterpret_cast<jclass> (jni_env->GetStaticObjectField (bcls, fid)); | |
1234 jobj = jni_env->NewObject (bcls, mid, bval); | |
1235 } | |
1227 else | 1236 else |
1228 { | 1237 { |
1229 float fval = val.float_scalar_value (); | 1238 float fval = val.float_scalar_value (); |
1230 jclass_ref fcls (jni_env, jni_env->FindClass ("java/lang/Float")); | 1239 jclass_ref fcls (jni_env, jni_env->FindClass ("java/lang/Float")); |
1231 jfieldID fid = jni_env->GetStaticFieldID (fcls, "TYPE", "Ljava/lang/Class;"); | 1240 jfieldID fid = jni_env->GetStaticFieldID (fcls, "TYPE", "Ljava/lang/Class;"); |
1241 jfieldID fid = jni_env->GetStaticFieldID (icls, "TYPE", "Ljava/lang/Class;"); | 1250 jfieldID fid = jni_env->GetStaticFieldID (icls, "TYPE", "Ljava/lang/Class;"); |
1242 jmethodID mid = jni_env->GetMethodID (icls, "<init>", "(I)V"); | 1251 jmethodID mid = jni_env->GetMethodID (icls, "<init>", "(I)V"); |
1243 jcls = reinterpret_cast<jclass> (jni_env->GetStaticObjectField (icls, fid)); | 1252 jcls = reinterpret_cast<jclass> (jni_env->GetStaticObjectField (icls, fid)); |
1244 jobj = jni_env->NewObject (icls, mid, ival); | 1253 jobj = jni_env->NewObject (icls, mid, ival); |
1245 } | 1254 } |
1246 else if (val.is_bool_scalar ()) | |
1247 { | |
1248 bool bval = val.bool_value (); | |
1249 jclass_ref bcls (jni_env, jni_env->FindClass ("java/lang/Boolean")); | |
1250 jfieldID fid = jni_env->GetStaticFieldID (bcls, "TYPE", "Ljava/lang/Class;"); | |
1251 jmethodID mid = jni_env->GetMethodID (bcls, "<init>", "(Z)V"); | |
1252 jcls = reinterpret_cast<jclass> (jni_env->GetStaticObjectField (bcls, fid)); | |
1253 jobj = jni_env->NewObject (bcls, mid, bval); | |
1254 } | |
1255 else if (val.is_empty ()) | 1255 else if (val.is_empty ()) |
1256 { | 1256 { |
1257 jobj = 0; | 1257 jobj = 0; |
1258 jcls = 0; | 1258 jcls = 0; |
1259 //jcls = jni_env->FindClass ("java/lang/Object"); | 1259 //jcls = jni_env->FindClass ("java/lang/Object"); |