diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/kernel/qjnihelpers_p.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/corelib/kernel/qjnihelpers_p.h b/src/corelib/kernel/qjnihelpers_p.h index 4887bb0009..2860cef4c3 100644 --- a/src/corelib/kernel/qjnihelpers_p.h +++ b/src/corelib/kernel/qjnihelpers_p.h @@ -139,6 +139,45 @@ namespace QtAndroidPrivate Q_CORE_EXPORT jobject callOnBindListener(jobject intent); } +#define Q_JNI_FIND_AND_CHECK_CLASS(CLASS_NAME) \ + clazz = env.findClass(CLASS_NAME); \ + if (!clazz) { \ + __android_log_print(ANDROID_LOG_FATAL, m_qtTag, QtAndroid::classErrorMsgFmt(), CLASS_NAME);\ + return JNI_FALSE; \ + } + +#define Q_JNI_GET_AND_CHECK_METHOD(ID, CLASS, METHOD_NAME, METHOD_SIGNATURE) \ + ID = env.findMethod(CLASS, METHOD_NAME, METHOD_SIGNATURE); \ + if (!ID) { \ + __android_log_print(ANDROID_LOG_FATAL, m_qtTag, QtAndroid::methodErrorMsgFmt(), \ + METHOD_NAME, METHOD_SIGNATURE); \ + return JNI_FALSE; \ + } + +#define Q_JNI_GET_AND_CHECK_STATIC_METHOD(ID, CLASS, METHOD_NAME, METHOD_SIGNATURE) \ + ID = env.findStaticMethod(CLASS, METHOD_NAME, METHOD_SIGNATURE); \ + if (!ID) { \ + __android_log_print(ANDROID_LOG_FATAL, m_qtTag, QtAndroid::methodErrorMsgFmt(), \ + METHOD_NAME, METHOD_SIGNATURE); \ + return JNI_FALSE; \ + } + +#define Q_JNI_GET_AND_CHECK_FIELD(ID, CLASS, FIELD_NAME, FIELD_SIGNATURE) \ + ID = env.findField(CLASS, FIELD_NAME, FIELD_SIGNATURE); \ + if (!ID) { \ + __android_log_print(ANDROID_LOG_FATAL, m_qtTag, QtAndroid::fieldErrorMsgFmt(), \ + FIELD_NAME, FIELD_SIGNATURE); \ + return JNI_FALSE; \ + } + +#define Q_JNI_GET_AND_CHECK_STATIC_FIELD(ID, CLASS, FIELD_NAME, FIELD_SIGNATURE) \ + ID = env.findStaticField(CLASS, FIELD_NAME, FIELD_SIGNATURE); \ + if (!ID) { \ + __android_log_print(ANDROID_LOG_FATAL, m_qtTag, QtAndroid::fieldErrorMsgFmt(), \ + FIELD_NAME, FIELD_SIGNATURE); \ + return JNI_FALSE; \ + } + QT_END_NAMESPACE #endif // QJNIHELPERS_H |