From eb6937a7bdd8ff05853c97fd3a744729653e997f Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 24 Dec 2012 12:53:50 +0100 Subject: [PATCH] (Android) JNI wrapper - check some more for exceptions --- android/native/jni/jni_wrapper.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/android/native/jni/jni_wrapper.c b/android/native/jni/jni_wrapper.c index 832bb69be7..f244f2cb4f 100644 --- a/android/native/jni/jni_wrapper.c +++ b/android/native/jni/jni_wrapper.c @@ -43,7 +43,7 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) return JNI_VERSION_1_4; do_exit: - (*vm)->DetachCurrentThread(vm); + //(*vm)->DetachCurrentThread(vm); return -1; } @@ -54,6 +54,10 @@ do_exit: (*env)->ExceptionClear(env); \ } +#define GET_OBJECT_CLASS(env, var, clazz_obj) \ + var = (*env)->GetObjectClass(env, clazz_obj); \ + JNI_EXCEPTION(env) + #define GET_METHOD_ID(env, var, clazz, methodName, fieldDescriptor) \ var = (*env)->GetMethodID(env, clazz, methodName, fieldDescriptor); \ JNI_EXCEPTION(env) @@ -93,14 +97,14 @@ void jni_get(void *params, void *out_params, unsigned out_type) if (in_params->class_obj) { - class_ptr = (*env)->GetObjectClass(env, in_params->class_obj); //class pointer + GET_OBJECT_CLASS(env, class_ptr, in_params->class_obj); GET_METHOD_ID(env, giid, class_ptr, in_params->method_name, in_params->method_signature); CALL_OBJ_METHOD(env, obj, in_params->class_obj, giid); } if (in_params->obj_method_name && obj) { - class_ptr = (*env)->GetObjectClass(env, obj); //class pointer of object + GET_OBJECT_CLASS(env, class_ptr, obj); GET_METHOD_ID(env, giid, class_ptr, in_params->obj_method_name, in_params->obj_method_signature); switch(out_type)