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");