unix/modjni: call_method: Check for Java exception after method return.
This commit is contained in:
parent
2ec835f572
commit
41eb705477
@ -450,15 +450,19 @@ STATIC mp_obj_t call_method(jobject obj, const char *name, jarray methods, bool
|
|||||||
} else {
|
} else {
|
||||||
if (MATCH(ret_type, "void")) {
|
if (MATCH(ret_type, "void")) {
|
||||||
JJ(CallVoidMethodA, obj, method_id, jargs);
|
JJ(CallVoidMethodA, obj, method_id, jargs);
|
||||||
|
check_exception();
|
||||||
ret = mp_const_none;
|
ret = mp_const_none;
|
||||||
} else if (MATCH(ret_type, "int")) {
|
} else if (MATCH(ret_type, "int")) {
|
||||||
jint res = JJ(CallIntMethodA, obj, method_id, jargs);
|
jint res = JJ(CallIntMethodA, obj, method_id, jargs);
|
||||||
|
check_exception();
|
||||||
ret = mp_obj_new_int(res);
|
ret = mp_obj_new_int(res);
|
||||||
} else if (MATCH(ret_type, "boolean")) {
|
} else if (MATCH(ret_type, "boolean")) {
|
||||||
jboolean res = JJ(CallBooleanMethodA, obj, method_id, jargs);
|
jboolean res = JJ(CallBooleanMethodA, obj, method_id, jargs);
|
||||||
|
check_exception();
|
||||||
ret = mp_obj_new_bool(res);
|
ret = mp_obj_new_bool(res);
|
||||||
} else if (is_object_type(ret_type)) {
|
} else if (is_object_type(ret_type)) {
|
||||||
res = JJ(CallObjectMethodA, obj, method_id, jargs);
|
res = JJ(CallObjectMethodA, obj, method_id, jargs);
|
||||||
|
check_exception();
|
||||||
ret = new_jobject(res);
|
ret = new_jobject(res);
|
||||||
} else {
|
} else {
|
||||||
JJ(ReleaseStringUTFChars, name_o, decl);
|
JJ(ReleaseStringUTFChars, name_o, decl);
|
||||||
|
Loading…
Reference in New Issue
Block a user