diff options
author | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2021-11-01 19:54:22 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-11-15 21:14:46 +0000 |
commit | 7fd062560add3bb0eb8f048ebea43c5e1bb9cc77 (patch) | |
tree | 69b9d533547e4ae555e3e974b9837cbf080fcf46 /src | |
parent | 1b3bf748b603408c7b9a7e9f8cdc8c81ce89faa9 (diff) |
Android: check if objectClass() is not null in registerNativeMethods()
In case the class doens't have a default constructor, checking for
object.isValid() will give false because the object won't be created,
however, the class could still be loaded and we could have a valid
jclass.
Fixes: QTBUG-96069
Change-Id: I8d59e26d9d7c0e8e363ce443937091a374a24473
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
(cherry picked from commit dfb4b7856a82a72934211d9a1a44626777570d30)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/kernel/qjnienvironment.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/corelib/kernel/qjnienvironment.cpp b/src/corelib/kernel/qjnienvironment.cpp index a72078d2cf..9766ff4d3b 100644 --- a/src/corelib/kernel/qjnienvironment.cpp +++ b/src/corelib/kernel/qjnienvironment.cpp @@ -347,11 +347,12 @@ JavaVM *QJniEnvironment::javaVM() bool QJniEnvironment::registerNativeMethods(const char *className, const JNINativeMethod methods[], int size) { - QJniObject classObject(className); + const jclass clazz = findClass(className); - if (!classObject.isValid()) + if (!clazz) return false; - return registerNativeMethods(classObject.objectClass(), methods, size); + + return registerNativeMethods(clazz, methods, size); } #if QT_DEPRECATED_SINCE(6, 2) /*! |