Browse Source

unix/modjni: Don't pass Java object to a method which doesn't expect it.

For example, don't pass Integer to double method. This is still not
selective enough to choose the right overloaded method maong those
taking objects.
pull/1517/merge
Paul Sokolovsky 9 years ago
parent
commit
9ebd4dabf2
  1. 12
      unix/modjni.c

12
unix/modjni.c

@ -362,9 +362,19 @@ STATIC bool py2jvalue(const char **jtypesig, mp_obj_t arg, jvalue *out) {
}
} else if (type == &jobject_type) {
printf("TODO: Check java arg type!!\n");
while (isalpha(*arg_type) || *arg_type == '.') {
bool is_object = false;
while (1) {
if (isalpha(*arg_type)) {
} else if (*arg_type == '.') {
is_object = true;
} else {
break;
}
arg_type++;
}
if (!is_object) {
return false;
}
mp_obj_jobject_t *jo = arg;
out->l = jo->obj;
} else if (type == &mp_type_bool) {

Loading…
Cancel
Save