From 68ed06b17b180ba7486b25cd6dd0f12b11cdb57f Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Fri, 26 Mar 2021 10:48:49 +0200 Subject: [PATCH] Rename QJniEnvironment exceptionCheckAndClear to checkAndClearExceptions Address feedback from header view. Task-number: QTBUG-90211 Change-Id: Iad2b609598b16f66fd6ab09484fe6e6899981263 Reviewed-by: Volker Hilsheimer (cherry picked from commit b9f27335e7462a15ac642841bb6d86ebebb349f9) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/kernel/qjnienvironment.cpp | 14 ++--- src/corelib/kernel/qjnienvironment.h | 4 +- src/corelib/kernel/qjnihelpers.cpp | 22 +++---- src/corelib/kernel/qjniobject.cpp | 60 +++++++++---------- src/plugins/platforms/android/extract.cpp | 4 +- .../qjnienvironment/tst_qjnienvironment.cpp | 6 +- 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/src/corelib/kernel/qjnienvironment.cpp b/src/corelib/kernel/qjnienvironment.cpp index ddadc2e114f..0c9aa27e82f 100644 --- a/src/corelib/kernel/qjnienvironment.cpp +++ b/src/corelib/kernel/qjnienvironment.cpp @@ -128,11 +128,11 @@ QJniEnvironment::QJniEnvironment() \fn QJniEnvironment::~QJniEnvironment() Detaches the current thread from the Java VM and destroys the QJniEnvironment object. - This will clear any pending exception by calling exceptionCheckAndClear(). + This will clear any pending exception by calling checkAndClearExceptions(). */ QJniEnvironment::~QJniEnvironment() { - exceptionCheckAndClear(); + checkAndClearExceptions(); } /*! @@ -229,7 +229,7 @@ bool QJniEnvironment::registerNativeMethods(const char *className, JNINativeMeth jclass clazz = d->jniEnv->GetObjectClass(classObject.object()); if (d->jniEnv->RegisterNatives(clazz, methods, size) < 0) { - exceptionCheckAndClear(); + checkAndClearExceptions(); d->jniEnv->DeleteLocalRef(clazz); return false; } @@ -248,7 +248,7 @@ bool QJniEnvironment::registerNativeMethods(const char *className, JNINativeMeth */ /*! - \fn QJniEnvironment::exceptionCheckAndClear(OutputMode outputMode = OutputMode::Verbose) + \fn QJniEnvironment::checkAndClearExceptions(OutputMode outputMode = OutputMode::Verbose) Cleans any pending exceptions either silently or reporting stack backtrace, depending on the \a outputMode. @@ -260,7 +260,7 @@ bool QJniEnvironment::registerNativeMethods(const char *className, JNINativeMeth \return \c true when a pending exception was cleared. */ -bool QJniEnvironment::exceptionCheckAndClear(QJniEnvironment::OutputMode outputMode) +bool QJniEnvironment::checkAndClearExceptions(QJniEnvironment::OutputMode outputMode) { if (Q_UNLIKELY(d->jniEnv->ExceptionCheck())) { if (outputMode != OutputMode::Silent) @@ -274,7 +274,7 @@ bool QJniEnvironment::exceptionCheckAndClear(QJniEnvironment::OutputMode outputM } /*! - \fn QJniEnvironment::exceptionCheckAndClear(JNIEnv *env, OutputMode outputMode = OutputMode::Verbose) + \fn QJniEnvironment::checkAndClearExceptions(JNIEnv *env, OutputMode outputMode = OutputMode::Verbose) Cleans any pending exceptions for \a env, either silently or reporting stack backtrace, depending on the \a outputMode. This is useful when you @@ -287,7 +287,7 @@ bool QJniEnvironment::exceptionCheckAndClear(QJniEnvironment::OutputMode outputM \return \c true when a pending exception was cleared. */ -bool QJniEnvironment::exceptionCheckAndClear(JNIEnv *env, QJniEnvironment::OutputMode outputMode) +bool QJniEnvironment::checkAndClearExceptions(JNIEnv *env, QJniEnvironment::OutputMode outputMode) { if (Q_UNLIKELY(env->ExceptionCheck())) { if (outputMode != OutputMode::Silent) diff --git a/src/corelib/kernel/qjnienvironment.h b/src/corelib/kernel/qjnienvironment.h index 5a7accf004b..a098e6fe079 100644 --- a/src/corelib/kernel/qjnienvironment.h +++ b/src/corelib/kernel/qjnienvironment.h @@ -71,8 +71,8 @@ public: Verbose }; - bool exceptionCheckAndClear(OutputMode outputMode = OutputMode::Verbose); - static bool exceptionCheckAndClear(JNIEnv *env, OutputMode outputMode = OutputMode::Verbose); + bool checkAndClearExceptions(OutputMode outputMode = OutputMode::Verbose); + static bool checkAndClearExceptions(JNIEnv *env, OutputMode outputMode = OutputMode::Verbose); private: diff --git a/src/corelib/kernel/qjnihelpers.cpp b/src/corelib/kernel/qjnihelpers.cpp index 45f4a4d8952..0ad5988297e 100644 --- a/src/corelib/kernel/qjnihelpers.cpp +++ b/src/corelib/kernel/qjnihelpers.cpp @@ -291,11 +291,11 @@ void QtAndroidPrivate::handleResume() static void setAndroidSdkVersion(JNIEnv *env) { jclass androidVersionClass = env->FindClass("android/os/Build$VERSION"); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return; jfieldID androidSDKFieldID = env->GetStaticFieldID(androidVersionClass, "SDK_INT", "I"); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return; g_androidSdkVersion = env->GetStaticIntField(androidVersionClass, androidSDKFieldID); @@ -331,42 +331,42 @@ jint QtAndroidPrivate::initJNI(JavaVM *vm, JNIEnv *env) { jclass jQtNative = env->FindClass("org/qtproject/qt/android/QtNative"); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; jmethodID activityMethodID = env->GetStaticMethodID(jQtNative, "activity", "()Landroid/app/Activity;"); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; jobject activity = env->CallStaticObjectMethod(jQtNative, activityMethodID); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; jmethodID serviceMethodID = env->GetStaticMethodID(jQtNative, "service", "()Landroid/app/Service;"); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; jobject service = env->CallStaticObjectMethod(jQtNative, serviceMethodID); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; jmethodID classLoaderMethodID = env->GetStaticMethodID(jQtNative, "classLoader", "()Ljava/lang/ClassLoader;"); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; jobject classLoader = env->CallStaticObjectMethod(jQtNative, classLoaderMethodID); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; setAndroidSdkVersion(env); @@ -394,7 +394,7 @@ jint QtAndroidPrivate::initJNI(JavaVM *vm, JNIEnv *env) const bool regOk = (env->RegisterNatives(jQtNative, methods, sizeof(methods) / sizeof(methods[0])) == JNI_OK); - if (!regOk && QJniEnvironment::exceptionCheckAndClear(env)) + if (!regOk && QJniEnvironment::checkAndClearExceptions(env)) return JNI_ERR; g_runPendingCppRunnablesMethodID = env->GetStaticMethodID(jQtNative, @@ -512,7 +512,7 @@ void QtAndroidPrivate::requestPermissions(JNIEnv *env, QJniEnvironment env; jclass clazz = env->FindClass("java/lang/String"); - if (env.exceptionCheckAndClear()) + if (env.checkAndClearExceptions()) return; auto array = env->NewObjectArray(permissions.size(), clazz, nullptr); diff --git a/src/corelib/kernel/qjniobject.cpp b/src/corelib/kernel/qjniobject.cpp index f141c2d84e4..8a09ae5f5fd 100644 --- a/src/corelib/kernel/qjniobject.cpp +++ b/src/corelib/kernel/qjniobject.cpp @@ -132,7 +132,7 @@ QT_BEGIN_NAMESPACE \note The user must handle exceptions manually when doing JNI calls using \c JNIEnv directly. It is unsafe to make other JNI calls when exceptions are pending. For more information, see - QJniEnvironment::exceptionCheckAndClear(). + QJniEnvironment::checkAndClearExceptions(). \section1 Java Native Methods @@ -346,7 +346,7 @@ inline static jclass loadClass(const QByteArray &className, JNIEnv *env, bool bi "(Ljava/lang/String;)Ljava/lang/Class;", stringName.object()); - if (!QJniEnvironment::exceptionCheckAndClear(env) && classObject.isValid()) + if (!QJniEnvironment::checkAndClearExceptions(env) && classObject.isValid()) clazz = static_cast(env->NewGlobalRef(classObject.object())); cachedClasses->insert(key, clazz); @@ -366,7 +366,7 @@ static inline jmethodID getMethodID(JNIEnv *env, jmethodID id = isStatic ? env->GetStaticMethodID(clazz, name, signature) : env->GetMethodID(clazz, name, signature); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return nullptr; return id; @@ -420,7 +420,7 @@ static inline jfieldID getFieldID(JNIEnv *env, jfieldID id = isStatic ? env->GetStaticFieldID(clazz, name, signature) : env->GetFieldID(clazz, name, signature); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return nullptr; return id; @@ -479,7 +479,7 @@ jclass QtAndroidPrivate::findClass(const char *className, JNIEnv *env) return it.value(); jclass fclazz = env->FindClass(className); - if (!QJniEnvironment::exceptionCheckAndClear(env)) { + if (!QJniEnvironment::checkAndClearExceptions(env)) { clazz = static_cast(env->NewGlobalRef(fclazz)); env->DeleteLocalRef(fclazz); } @@ -726,7 +726,7 @@ inline static QJniObject getCleanJniObject(jobject obj) return QJniObject(); QJniEnvironment env; - if (env.exceptionCheckAndClear()) { + if (env.checkAndClearExceptions()) { env->DeleteLocalRef(obj); return QJniObject(); } @@ -775,7 +775,7 @@ QJniObject QJniObject::callObjectMethodV(const char *methodName, jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature); if (id) { res = env->CallObjectMethodV(d->m_jobject, id, args); - if (env.exceptionCheckAndClear()) { + if (env.checkAndClearExceptions()) { env->DeleteLocalRef(res); res = nullptr; } @@ -799,7 +799,7 @@ QJniObject QJniObject::callStaticObjectMethodV(const char *className, methodName, signature, true); if (id) { res = env->CallStaticObjectMethodV(clazz, id, args); - if (env.exceptionCheckAndClear()) { + if (env.checkAndClearExceptions()) { env->DeleteLocalRef(res); res = nullptr; } @@ -846,7 +846,7 @@ Q_CORE_EXPORT void QJniObject::callMethod(const char *methodName, const ch va_start(args, signature); env->CallVoidMethodV(d->m_jobject, id, args); va_end(args); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } @@ -894,7 +894,7 @@ Q_CORE_EXPORT void QJniObject::callStaticMethod(const char *className, va_start(args, signature); env->CallStaticVoidMethodV(clazz, id, args); va_end(args); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } } @@ -942,7 +942,7 @@ Q_CORE_EXPORT void QJniObject::callStaticMethod(jclass clazz, va_start(args, signature); env->CallStaticVoidMethodV(clazz, id, args); va_end(args); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } } @@ -961,7 +961,7 @@ Q_CORE_EXPORT void QJniObject::callStaticMethodV(const char *className, signature, true); if (id) { env->CallStaticVoidMethodV(clazz, id, args); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } } @@ -976,7 +976,7 @@ Q_CORE_EXPORT void QJniObject::callStaticMethodV(jclass clazz, jmethodID id = getMethodID(env, clazz, methodName, signature, true); if (id) { env->CallStaticVoidMethodV(clazz, id, args); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } @@ -1005,7 +1005,7 @@ Q_CORE_EXPORT void QJniObject::callMethodV(const char *methodName, const c jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature); if (id) { env->CallVoidMethodV(d->m_jobject, id, args); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } @@ -1021,7 +1021,7 @@ template <> Q_CORE_EXPORT Type QJniObject::callMethod(const char *methodNa va_start(args, signature); \ res = env->Call##MethodName##MethodV(d->m_jobject, id, args); \ va_end(args); \ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ } \ return res; \ @@ -1047,7 +1047,7 @@ template <> Q_CORE_EXPORT Type QJniObject::callStaticMethod(const char *cl va_start(args, signature); \ res = env->CallStatic##MethodName##MethodV(clazz, id, args); \ va_end(args); \ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ } \ } \ @@ -1073,7 +1073,7 @@ template <> Q_CORE_EXPORT Type QJniObject::callStaticMethod(jclass clazz, va_start(args, signature); \ res = env->CallStatic##MethodName##MethodV(clazz, id, args); \ va_end(args); \ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ } \ } \ @@ -1093,7 +1093,7 @@ Q_CORE_EXPORT Type QJniObject::callMethodV(const char *methodName, const c jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature);\ if (id) {\ res = env->Call##MethodName##MethodV(d->m_jobject, id, args);\ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ }\ return res;\ @@ -1112,7 +1112,7 @@ Q_CORE_EXPORT Type QJniObject::callStaticMethodV(const char *className,\ signature, true);\ if (id) {\ res = env->CallStatic##MethodName##MethodV(clazz, id, args);\ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ }\ }\ @@ -1129,7 +1129,7 @@ Q_CORE_EXPORT Type QJniObject::callStaticMethodV(jclass clazz,\ jmethodID id = getMethodID(env, clazz, methodName, signature, true);\ if (id) {\ res = env->CallStatic##MethodName##MethodV(clazz, id, args);\ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ }\ return res;\ @@ -1357,7 +1357,7 @@ Q_CORE_EXPORT void QJniObject::setStaticField(const char *className, jfieldID id = getCachedFieldID(env, clazz, className, fieldName, signature, true); if (id) { env->SetStaticObjectField(clazz, id, value); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } @@ -1377,7 +1377,7 @@ template <> Q_CORE_EXPORT void QJniObject::setStaticField(jclass clazz, if (id) { env->SetStaticObjectField(clazz, id, value); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } @@ -1423,7 +1423,7 @@ template <> Q_CORE_EXPORT Type QJniObject::getField(const char *fieldName) jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, Signature); \ if (id) {\ res = env->Get##FieldName##Field(d->m_jobject, id); \ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ } \ return res;\ @@ -1440,7 +1440,7 @@ Q_CORE_EXPORT Type QJniObject::getStaticField(const char *className, const if (!id) \ return 0; \ Type res = env->GetStatic##FieldName##Field(clazz, id); \ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ return res;\ } \ @@ -1452,7 +1452,7 @@ Q_CORE_EXPORT Type QJniObject::getStaticField(jclass clazz, const char *fi jfieldID id = getFieldID(env, clazz, fieldName, Signature, true);\ if (id) {\ res = env->GetStatic##FieldName##Field(clazz, id);\ - if (env.exceptionCheckAndClear()) \ + if (env.checkAndClearExceptions()) \ res = 0; \ }\ return res;\ @@ -1469,7 +1469,7 @@ template <> Q_CORE_EXPORT void QJniObject::setStaticField(const char *clas if (!id) \ return; \ env->SetStatic##FieldName##Field(clazz, id, value); \ - env.exceptionCheckAndClear(); \ + env.checkAndClearExceptions(); \ }\ template <> Q_CORE_EXPORT void QJniObject::setStaticField(jclass clazz,\ const char *fieldName,\ @@ -1479,7 +1479,7 @@ template <> Q_CORE_EXPORT void QJniObject::setStaticField(jclass clazz,\ jfieldID id = getFieldID(env, clazz, fieldName, Signature, true);\ if (id) {\ env->SetStatic##FieldName##Field(clazz, id, value);\ - env.exceptionCheckAndClear();\ + env.checkAndClearExceptions();\ }\ }\ template <> Q_CORE_EXPORT void QJniObject::setField(const char *fieldName, Type value) \ @@ -1488,7 +1488,7 @@ template <> Q_CORE_EXPORT void QJniObject::setField(const char *fieldName, jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, Signature); \ if (id) { \ env->Set##FieldName##Field(d->m_jobject, id, value); \ - env.exceptionCheckAndClear(); \ + env.checkAndClearExceptions(); \ } \ } \ @@ -1631,7 +1631,7 @@ void QJniObject::setField(const char *fieldName, const char *signature, jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, signature); if (id) { env->SetObjectField(d->m_jobject, id, value); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } @@ -1644,7 +1644,7 @@ void QJniObject::setField(const char *fieldName, jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, signature); if (id) { env->SetObjectField(d->m_jobject, id, value); - env.exceptionCheckAndClear(); + env.checkAndClearExceptions(); } } diff --git a/src/plugins/platforms/android/extract.cpp b/src/plugins/platforms/android/extract.cpp index bac3c3709ef..cad54d580b5 100644 --- a/src/plugins/platforms/android/extract.cpp +++ b/src/plugins/platforms/android/extract.cpp @@ -135,12 +135,12 @@ Java_org_qtproject_qt_android_ExtractStyle_extractChunkInfo20(JNIEnv *env, jobje env->GetByteArrayRegion(chunkObj, 0, chunkSize, reinterpret_cast(storage)); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) return 0; jintArray res = Java_org_qtproject_qt_android_ExtractStyle_extractNativeChunkInfo20(env, obj, long(storage)); - if (QJniEnvironment::exceptionCheckAndClear(env)) + if (QJniEnvironment::checkAndClearExceptions(env)) res = nullptr; return res; diff --git a/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp b/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp index d47a9ecd57e..2cd0b7ea763 100644 --- a/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp +++ b/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp @@ -71,11 +71,11 @@ void tst_QJniEnvironment::jniEnv() env->ExceptionClear(); QVERIFY(env->FindClass("java/lang/Object")); - QVERIFY(!QJniEnvironment::exceptionCheckAndClear(env)); + QVERIFY(!QJniEnvironment::checkAndClearExceptions(env)); // try to find a nonexistent class QVERIFY(!env->FindClass("this/doesnt/Exist")); - QVERIFY(QJniEnvironment::exceptionCheckAndClear(env)); + QVERIFY(QJniEnvironment::checkAndClearExceptions(env)); // try to find an existing class with QJniEnvironment QJniEnvironment env; @@ -86,7 +86,7 @@ void tst_QJniEnvironment::jniEnv() // clear exception with member function QVERIFY(!env->FindClass("this/doesnt/Exist")); - QVERIFY(env.exceptionCheckAndClear()); + QVERIFY(env.checkAndClearExceptions()); } // The env does not detach automatically, even if it goes out of scope. The only way it can