From 19567a5e3a776ba65cec7eaf375853e07d868f81 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 7 Aug 2012 13:40:47 +0200 Subject: [PATCH] Helper function added to handle Java exceptions in native code --- .../android/jni/libandroidbridge/android_jni.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/frontends/android/jni/libandroidbridge/android_jni.h b/src/frontends/android/jni/libandroidbridge/android_jni.h index 77c33f73e..427c641b4 100644 --- a/src/frontends/android/jni/libandroidbridge/android_jni.h +++ b/src/frontends/android/jni/libandroidbridge/android_jni.h @@ -24,6 +24,7 @@ #define ANDROID_JNI_H_ #include +#include #define JNI_PACKAGE org_strongswan_android_logic #define JNI_PACKAGE_STRING "org/strongswan/android/logic" @@ -62,4 +63,21 @@ void androidjni_attach_thread(JNIEnv **env); */ void androidjni_detach_thread(); +/** + * Handle exceptions thrown by a JNI call + * + * @param env JNIEnv + * @return TRUE if an exception was thrown + */ +static inline bool androidjni_exception_occurred(JNIEnv *env) +{ + if ((*env)->ExceptionOccurred(env)) + { /* clear any exception, otherwise the VM is terminated */ + (*env)->ExceptionDescribe(env); + (*env)->ExceptionClear(env); + return TRUE; + } + return FALSE; +} + #endif /** ANDROID_JNI_H_ @}*/