unix/modjni: Return any object type value as a jobject.

This commit is contained in:
Paul Sokolovsky 2015-09-15 14:07:12 +03:00
parent 5167332131
commit b230a86d33

View File

@ -237,14 +237,22 @@ ret_string:;
ret = mp_obj_new_str(s, strlen(s), false);
JJ(ReleaseStringUTFChars, arg, s);
return ret;
} else if (MATCH(jtypesig, "java.lang.Object")) {
if (JJ(IsInstanceOf, arg, String_class)) {
goto ret_string;
} else {
return new_jobject(arg);
} else {
while (*jtypesig != ' ' && *jtypesig) {
if (*jtypesig == '.') {
// Non-primitive, object type
if (JJ(IsInstanceOf, arg, String_class)) {
goto ret_string;
} else {
return new_jobject(arg);
}
}
jtypesig++;
}
}
printf("Unknown return type: %s\n", jtypesig);
return MP_OBJ_NULL;
}