From 60e104aed84759f1e0cf324f47781eed5b055761 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Tue, 1 Jun 2021 22:23:22 +0300 Subject: [PATCH] JNI: check if clazz is null before doing a jni call Also add missing \since keyword. Task-number: QTBUG-92952 Pick-to: 6.2 Change-Id: Ia1472f04955809fb5132a4b6239dbcbdf63cca93 Reviewed-by: Ivan Solovev Reviewed-by: Ville Voutilainen --- src/corelib/kernel/qjnienvironment.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/corelib/kernel/qjnienvironment.cpp b/src/corelib/kernel/qjnienvironment.cpp index e8537dc865f..8982d6712f1 100644 --- a/src/corelib/kernel/qjnienvironment.cpp +++ b/src/corelib/kernel/qjnienvironment.cpp @@ -217,14 +217,18 @@ jclass QJniEnvironment::findClass(const char *className) A usecase for this method is searching for class methods and caching their IDs, so that they could later be used for calling the methods. + + \since 6.2 */ jmethodID QJniEnvironment::findMethod(jclass clazz, const char *methodName, const char *signature) { - jmethodID id = d->jniEnv->GetMethodID(clazz, methodName, signature); - if (checkAndClearExceptions(d->jniEnv)) - return nullptr; + if (clazz) { + jmethodID id = d->jniEnv->GetMethodID(clazz, methodName, signature); + if (!checkAndClearExceptions(d->jniEnv)) + return id; + } - return id; + return nullptr; } /*! @@ -247,14 +251,18 @@ jmethodID QJniEnvironment::findMethod(jclass clazz, const char *methodName, cons methodId, javaMessage.object()); \endcode + + \since 6.2 */ jmethodID QJniEnvironment::findStaticMethod(jclass clazz, const char *methodName, const char *signature) { - jmethodID id = d->jniEnv->GetStaticMethodID(clazz, methodName, signature); - if (checkAndClearExceptions(d->jniEnv)) - return nullptr; + if (clazz) { + jmethodID id = d->jniEnv->GetStaticMethodID(clazz, methodName, signature); + if (!checkAndClearExceptions(d->jniEnv)) + return id; + } - return id; + return nullptr; }