summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2021-04-13 11:54:33 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-04-15 10:10:46 +0000
commitdb786b4774ee0ce6ceff9ae247399b9b9f354ad4 (patch)
tree2399b5256aa0a58490006bce6362c12bb9be2e3e
parentada12ec960bd05c62eb4a9acea84516a8a642d3a (diff)
Replace conversion operator by operator* in QJniEnvironment
Since conversion operators do implicit conversion that might bring some potential issues while using the API, let's stick to having an operator* instead. Change-Id: Ie7ad5537958944b8d1c11d69fbd30284b4b0344d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io> (cherry picked from commit 13592385723a9b81b3715b5344bdd04e6a393a12) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/corelib/kernel/qjnienvironment.cpp22
-rw-r--r--src/corelib/kernel/qjnienvironment.h6
-rw-r--r--src/corelib/kernel/qjniobject.cpp106
-rw-r--r--src/plugins/platforms/android/androidjnimain.cpp6
-rw-r--r--src/plugins/platforms/android/qandroidplatformmenu.cpp2
-rw-r--r--src/plugins/platforms/android/qandroidplatformopenglwindow.cpp2
-rw-r--r--tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp9
7 files changed, 83 insertions, 70 deletions
diff --git a/src/corelib/kernel/qjnienvironment.cpp b/src/corelib/kernel/qjnienvironment.cpp
index 0c9aa27e82..522c97bdc1 100644
--- a/src/corelib/kernel/qjnienvironment.cpp
+++ b/src/corelib/kernel/qjnienvironment.cpp
@@ -136,21 +136,31 @@ QJniEnvironment::~QJniEnvironment()
}
/*!
- \fn JNIEnv *QJniEnvironment::operator->()
+ \fn JNIEnv *QJniEnvironment::operator->() const
- Provides access to the QJniEnvironment's JNIEnv pointer.
+ Provides access to the JNI Environment's \c JNIEnv pointer.
*/
-JNIEnv *QJniEnvironment::operator->()
+JNIEnv *QJniEnvironment::operator->() const
{
return d->jniEnv;
}
/*!
- \fn QJniEnvironment::operator JNIEnv *() const
+ \fn JNIEnv &QJniEnvironment::operator*() const
- Returns the JNI Environment pointer.
+ Returns the JNI Environment's \c JNIEnv object.
*/
-QJniEnvironment::operator JNIEnv* () const
+JNIEnv &QJniEnvironment::operator*() const
+{
+ return *d->jniEnv;
+}
+
+/*!
+ \fn JNIEnv *QJniEnvironment::jniEnv()
+
+ Returns the JNI Environment's \c JNIEnv pointer.
+*/
+JNIEnv *QJniEnvironment::jniEnv() const
{
return d->jniEnv;
}
diff --git a/src/corelib/kernel/qjnienvironment.h b/src/corelib/kernel/qjnienvironment.h
index a098e6fe07..a9a3e99097 100644
--- a/src/corelib/kernel/qjnienvironment.h
+++ b/src/corelib/kernel/qjnienvironment.h
@@ -60,8 +60,9 @@ class Q_CORE_EXPORT QJniEnvironment
public:
QJniEnvironment();
~QJniEnvironment();
- JNIEnv *operator->();
- operator JNIEnv *() const;
+ JNIEnv *operator->() const;
+ JNIEnv &operator*() const;
+ JNIEnv *jniEnv() const;
jclass findClass(const char *className);
static JavaVM *javaVM();
bool registerNativeMethods(const char *className, JNINativeMethod methods[], int size);
@@ -74,7 +75,6 @@ public:
bool checkAndClearExceptions(OutputMode outputMode = OutputMode::Verbose);
static bool checkAndClearExceptions(JNIEnv *env, OutputMode outputMode = OutputMode::Verbose);
-
private:
Q_DISABLE_COPY_MOVE(QJniEnvironment)
QScopedPointer<QJniEnvironmentPrivate> d;
diff --git a/src/corelib/kernel/qjniobject.cpp b/src/corelib/kernel/qjniobject.cpp
index 8a09ae5f5f..9bd71c061e 100644
--- a/src/corelib/kernel/qjniobject.cpp
+++ b/src/corelib/kernel/qjniobject.cpp
@@ -489,7 +489,7 @@ jclass QtAndroidPrivate::findClass(const char *className, JNIEnv *env)
}
if (!clazz) // We didn't get an env. pointer or we got one with the WRONG class loader...
- clazz = loadClass(classDotEnc, QJniEnvironment(), true);
+ clazz = loadClass(classDotEnc, QJniEnvironment().jniEnv(), true);
return clazz;
}
@@ -538,11 +538,11 @@ QJniObject::QJniObject(const char *className)
{
QJniEnvironment env;
d->m_className = toBinaryEncClassName(className);
- d->m_jclass = loadClass(d->m_className, env, true);
+ d->m_jclass = loadClass(d->m_className, env.jniEnv(), true);
d->m_own_jclass = false;
if (d->m_jclass) {
// get default constructor
- jmethodID constructorId = getCachedMethodID(env, d->m_jclass, d->m_className, "<init>", "()V");
+ jmethodID constructorId = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, "<init>", "()V");
if (constructorId) {
jobject obj = env->NewObject(d->m_jclass, constructorId);
if (obj) {
@@ -571,10 +571,10 @@ QJniObject::QJniObject(const char *className, const char *signature, ...)
{
QJniEnvironment env;
d->m_className = toBinaryEncClassName(className);
- d->m_jclass = loadClass(d->m_className, env, true);
+ d->m_jclass = loadClass(d->m_className, env.jniEnv(), true);
d->m_own_jclass = false;
if (d->m_jclass) {
- jmethodID constructorId = getCachedMethodID(env, d->m_jclass, d->m_className, "<init>", signature);
+ jmethodID constructorId = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, "<init>", signature);
if (constructorId) {
va_list args;
va_start(args, signature);
@@ -593,10 +593,10 @@ QJniObject::QJniObject(const char *className, const char *signature, const QVaLi
{
QJniEnvironment env;
d->m_className = toBinaryEncClassName(className);
- d->m_jclass = loadClass(d->m_className, env, true);
+ d->m_jclass = loadClass(d->m_className, env.jniEnv(), true);
d->m_own_jclass = false;
if (d->m_jclass) {
- jmethodID constructorId = getCachedMethodID(env, d->m_jclass, d->m_className, "<init>", signature);
+ jmethodID constructorId = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, "<init>", signature);
if (constructorId) {
jobject obj = env->NewObjectV(d->m_jclass, constructorId, args);
if (obj) {
@@ -626,7 +626,7 @@ QJniObject::QJniObject(jclass clazz, const char *signature, ...)
if (clazz) {
d->m_jclass = static_cast<jclass>(env->NewGlobalRef(clazz));
if (d->m_jclass) {
- jmethodID constructorId = getMethodID(env, d->m_jclass, "<init>", signature);
+ jmethodID constructorId = getMethodID(env.jniEnv(), d->m_jclass, "<init>", signature);
if (constructorId) {
va_list args;
va_start(args, signature);
@@ -658,7 +658,7 @@ QJniObject::QJniObject(jclass clazz)
d->m_jclass = static_cast<jclass>(env->NewGlobalRef(clazz));
if (d->m_jclass) {
// get default constructor
- jmethodID constructorId = getMethodID(env, d->m_jclass, "<init>", "()V");
+ jmethodID constructorId = getMethodID(env.jniEnv(), d->m_jclass, "<init>", "()V");
if (constructorId) {
jobject obj = env->NewObject(d->m_jclass, constructorId);
if (obj) {
@@ -676,7 +676,7 @@ QJniObject::QJniObject(jclass clazz, const char *signature, const QVaListPrivate
if (clazz) {
d->m_jclass = static_cast<jclass>(env->NewGlobalRef(clazz));
if (d->m_jclass) {
- jmethodID constructorId = getMethodID(env, d->m_jclass, "<init>", signature);
+ jmethodID constructorId = getMethodID(env.jniEnv(), d->m_jclass, "<init>", signature);
if (constructorId) {
jobject obj = env->NewObjectV(d->m_jclass, constructorId, args);
if (obj) {
@@ -772,7 +772,7 @@ QJniObject QJniObject::callObjectMethodV(const char *methodName,
{
QJniEnvironment env;
jobject res = nullptr;
- jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature);
+ jmethodID id = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, methodName, signature);
if (id) {
res = env->CallObjectMethodV(d->m_jobject, id, args);
if (env.checkAndClearExceptions()) {
@@ -793,9 +793,9 @@ QJniObject QJniObject::callStaticObjectMethodV(const char *className,
{
QJniEnvironment env;
jobject res = nullptr;
- jclass clazz = loadClass(className, env);
+ jclass clazz = loadClass(className, env.jniEnv());
if (clazz) {
- jmethodID id = getCachedMethodID(env, clazz, toBinaryEncClassName(className),
+ jmethodID id = getCachedMethodID(env.jniEnv(), clazz, toBinaryEncClassName(className),
methodName, signature, true);
if (id) {
res = env->CallStaticObjectMethodV(clazz, id, args);
@@ -817,7 +817,7 @@ QJniObject QJniObject::callStaticObjectMethodV(jclass clazz,
va_list args)
{
QJniEnvironment env;
- jmethodID id = getMethodID(env, clazz, methodName, signature, true);
+ jmethodID id = getMethodID(env.jniEnv(), clazz, methodName, signature, true);
if (!id)
return QJniObject();
@@ -840,7 +840,7 @@ template <>
Q_CORE_EXPORT void QJniObject::callMethod<void>(const char *methodName, const char *signature, ...) const
{
QJniEnvironment env;
- jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature);
+ jmethodID id = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, methodName, signature);
if (id) {
va_list args;
va_start(args, signature);
@@ -885,9 +885,9 @@ Q_CORE_EXPORT void QJniObject::callStaticMethod<void>(const char *className,
...)
{
QJniEnvironment env;
- jclass clazz = loadClass(className, env);
+ jclass clazz = loadClass(className, env.jniEnv());
if (clazz) {
- jmethodID id = getCachedMethodID(env, clazz, toBinaryEncClassName(className),
+ jmethodID id = getCachedMethodID(env.jniEnv(), clazz, toBinaryEncClassName(className),
methodName, signature, true);
if (id) {
va_list args;
@@ -936,7 +936,7 @@ Q_CORE_EXPORT void QJniObject::callStaticMethod<void>(jclass clazz,
{
QJniEnvironment env;
if (clazz) {
- jmethodID id = getMethodID(env, clazz, methodName, signature, true);
+ jmethodID id = getMethodID(env.jniEnv(), clazz, methodName, signature, true);
if (id) {
va_list args;
va_start(args, signature);
@@ -954,9 +954,9 @@ Q_CORE_EXPORT void QJniObject::callStaticMethodV<void>(const char *className,
va_list args)
{
QJniEnvironment env;
- jclass clazz = loadClass(className, env);
+ jclass clazz = loadClass(className, env.jniEnv());
if (clazz) {
- jmethodID id = getCachedMethodID(env, clazz,
+ jmethodID id = getCachedMethodID(env.jniEnv(), clazz,
toBinaryEncClassName(className), methodName,
signature, true);
if (id) {
@@ -973,7 +973,7 @@ Q_CORE_EXPORT void QJniObject::callStaticMethodV<void>(jclass clazz,
va_list args)
{
QJniEnvironment env;
- jmethodID id = getMethodID(env, clazz, methodName, signature, true);
+ jmethodID id = getMethodID(env.jniEnv(), clazz, methodName, signature, true);
if (id) {
env->CallStaticVoidMethodV(clazz, id, args);
env.checkAndClearExceptions();
@@ -1002,7 +1002,7 @@ Q_CORE_EXPORT void QJniObject::callMethodV<void>(const char *methodName, const c
va_list args) const
{
QJniEnvironment env;
- jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature);
+ jmethodID id = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, methodName, signature);
if (id) {
env->CallVoidMethodV(d->m_jobject, id, args);
env.checkAndClearExceptions();
@@ -1015,7 +1015,7 @@ template <> Q_CORE_EXPORT Type QJniObject::callMethod<Type>(const char *methodNa
{ \
QJniEnvironment env; \
Type res = 0; \
- jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature); \
+ jmethodID id = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, methodName, signature); \
if (id) { \
va_list args; \
va_start(args, signature); \
@@ -1038,9 +1038,9 @@ template <> Q_CORE_EXPORT Type QJniObject::callStaticMethod<Type>(const char *cl
{ \
QJniEnvironment env; \
Type res = 0; \
- jclass clazz = loadClass(className, env); \
+ jclass clazz = loadClass(className, env.jniEnv()); \
if (clazz) { \
- jmethodID id = getCachedMethodID(env, clazz, toBinaryEncClassName(className), methodName, \
+ jmethodID id = getCachedMethodID(env.jniEnv(), clazz, toBinaryEncClassName(className), methodName, \
signature, true); \
if (id) { \
va_list args; \
@@ -1067,7 +1067,7 @@ template <> Q_CORE_EXPORT Type QJniObject::callStaticMethod<Type>(jclass clazz,
QJniEnvironment env; \
Type res = 0; \
if (clazz) { \
- jmethodID id = getMethodID(env, clazz, methodName, signature, true); \
+ jmethodID id = getMethodID(env.jniEnv(), clazz, methodName, signature, true); \
if (id) { \
va_list args; \
va_start(args, signature); \
@@ -1090,7 +1090,7 @@ Q_CORE_EXPORT Type QJniObject::callMethodV<Type>(const char *methodName, const c
{\
QJniEnvironment env;\
Type res = 0;\
- jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature);\
+ jmethodID id = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, methodName, signature);\
if (id) {\
res = env->Call##MethodName##MethodV(d->m_jobject, id, args);\
if (env.checkAndClearExceptions()) \
@@ -1106,9 +1106,9 @@ Q_CORE_EXPORT Type QJniObject::callStaticMethodV<Type>(const char *className,\
{\
QJniEnvironment env;\
Type res = 0;\
- jclass clazz = loadClass(className, env);\
+ jclass clazz = loadClass(className, env.jniEnv());\
if (clazz) {\
- jmethodID id = getCachedMethodID(env, clazz, toBinaryEncClassName(className), methodName,\
+ jmethodID id = getCachedMethodID(env.jniEnv(), clazz, toBinaryEncClassName(className), methodName,\
signature, true);\
if (id) {\
res = env->CallStatic##MethodName##MethodV(clazz, id, args);\
@@ -1126,7 +1126,7 @@ Q_CORE_EXPORT Type QJniObject::callStaticMethodV<Type>(jclass clazz,\
{\
QJniEnvironment env;\
Type res = 0;\
- jmethodID id = getMethodID(env, clazz, methodName, signature, true);\
+ jmethodID id = getMethodID(env.jniEnv(), clazz, methodName, signature, true);\
if (id) {\
res = env->CallStatic##MethodName##MethodV(clazz, id, args);\
if (env.checkAndClearExceptions()) \
@@ -1162,7 +1162,7 @@ DECLARE_JNI_METHODS(Double, jdouble, "()D")
QJniObject QJniObject::callObjectMethod(const char *methodName, const char *signature, ...) const
{
QJniEnvironment env;
- jmethodID id = getCachedMethodID(env, d->m_jclass, d->m_className, methodName, signature);
+ jmethodID id = getCachedMethodID(env.jniEnv(), d->m_jclass, d->m_className, methodName, signature);
if (id) {
va_list args;
va_start(args, signature);
@@ -1193,9 +1193,9 @@ QJniObject QJniObject::callStaticObjectMethod(const char *className,
...)
{
QJniEnvironment env;
- jclass clazz = loadClass(className, env);
+ jclass clazz = loadClass(className, env.jniEnv());
if (clazz) {
- jmethodID id = getCachedMethodID(env, clazz, toBinaryEncClassName(className),
+ jmethodID id = getCachedMethodID(env.jniEnv(), clazz, toBinaryEncClassName(className),
methodName, signature, true);
if (id) {
va_list args;
@@ -1222,7 +1222,7 @@ QJniObject QJniObject::callStaticObjectMethod(jclass clazz,
{
QJniEnvironment env;
if (clazz) {
- jmethodID id = getMethodID(env, clazz, methodName, signature, true);
+ jmethodID id = getMethodID(env.jniEnv(), clazz, methodName, signature, true);
if (id) {
va_list args;
va_start(args, signature);
@@ -1349,12 +1349,12 @@ Q_CORE_EXPORT void QJniObject::setStaticField<jobject>(const char *className,
jobject value)
{
QJniEnvironment env;
- jclass clazz = loadClass(className, env);
+ jclass clazz = loadClass(className, env.jniEnv());
if (!clazz)
return;
- jfieldID id = getCachedFieldID(env, clazz, className, fieldName, signature, true);
+ jfieldID id = getCachedFieldID(env.jniEnv(), clazz, className, fieldName, signature, true);
if (id) {
env->SetStaticObjectField(clazz, id, value);
env.checkAndClearExceptions();
@@ -1373,7 +1373,7 @@ template <> Q_CORE_EXPORT void QJniObject::setStaticField<jobject>(jclass clazz,
jobject value)
{
QJniEnvironment env;
- jfieldID id = getFieldID(env, clazz, fieldName, signature, true);
+ jfieldID id = getFieldID(env.jniEnv(), clazz, fieldName, signature, true);
if (id) {
env->SetStaticObjectField(clazz, id, value);
@@ -1420,7 +1420,7 @@ template <> Q_CORE_EXPORT Type QJniObject::getField<Type>(const char *fieldName)
{ \
QJniEnvironment env; \
Type res = 0; \
- jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, Signature); \
+ jfieldID id = getCachedFieldID(env.jniEnv(), d->m_jclass, d->m_className, fieldName, Signature); \
if (id) {\
res = env->Get##FieldName##Field(d->m_jobject, id); \
if (env.checkAndClearExceptions()) \
@@ -1432,10 +1432,10 @@ template <> \
Q_CORE_EXPORT Type QJniObject::getStaticField<Type>(const char *className, const char *fieldName) \
{ \
QJniEnvironment env; \
- jclass clazz = loadClass(className, env); \
+ jclass clazz = loadClass(className, env.jniEnv()); \
if (!clazz) \
return 0; \
- jfieldID id = getCachedFieldID(env, clazz, toBinaryEncClassName(className), fieldName, \
+ jfieldID id = getCachedFieldID(env.jniEnv(), clazz, toBinaryEncClassName(className), fieldName, \
Signature, true); \
if (!id) \
return 0; \
@@ -1449,7 +1449,7 @@ Q_CORE_EXPORT Type QJniObject::getStaticField<Type>(jclass clazz, const char *fi
{\
QJniEnvironment env;\
Type res = 0;\
- jfieldID id = getFieldID(env, clazz, fieldName, Signature, true);\
+ jfieldID id = getFieldID(env.jniEnv(), clazz, fieldName, Signature, true);\
if (id) {\
res = env->GetStatic##FieldName##Field(clazz, id);\
if (env.checkAndClearExceptions()) \
@@ -1462,10 +1462,10 @@ template <> Q_CORE_EXPORT void QJniObject::setStaticField<Type>(const char *clas
Type value) \
{ \
QJniEnvironment env; \
- jclass clazz = loadClass(className, env); \
+ jclass clazz = loadClass(className, env.jniEnv()); \
if (!clazz) \
return; \
- jfieldID id = getCachedFieldID(env, clazz, className, fieldName, Signature, true); \
+ jfieldID id = getCachedFieldID(env.jniEnv(), clazz, className, fieldName, Signature, true); \
if (!id) \
return; \
env->SetStatic##FieldName##Field(clazz, id, value); \
@@ -1476,7 +1476,7 @@ template <> Q_CORE_EXPORT void QJniObject::setStaticField<Type>(jclass clazz,\
Type value)\
{\
QJniEnvironment env;\
- jfieldID id = getFieldID(env, clazz, fieldName, Signature, true);\
+ jfieldID id = getFieldID(env.jniEnv(), clazz, fieldName, Signature, true);\
if (id) {\
env->SetStatic##FieldName##Field(clazz, id, value);\
env.checkAndClearExceptions();\
@@ -1485,7 +1485,7 @@ template <> Q_CORE_EXPORT void QJniObject::setStaticField<Type>(jclass clazz,\
template <> Q_CORE_EXPORT void QJniObject::setField<Type>(const char *fieldName, Type value) \
{ \
QJniEnvironment env; \
- jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, Signature); \
+ jfieldID id = getCachedFieldID(env.jniEnv(), d->m_jclass, d->m_className, fieldName, Signature); \
if (id) { \
env->Set##FieldName##Field(d->m_jobject, id, value); \
env.checkAndClearExceptions(); \
@@ -1521,10 +1521,10 @@ QJniObject QJniObject::getStaticObjectField(const char *className,
const char *signature)
{
QJniEnvironment env;
- jclass clazz = loadClass(className, env);
+ jclass clazz = loadClass(className, env.jniEnv());
if (!clazz)
return QJniObject();
- jfieldID id = getCachedFieldID(env, clazz, toBinaryEncClassName(className), fieldName,
+ jfieldID id = getCachedFieldID(env.jniEnv(), clazz, toBinaryEncClassName(className), fieldName,
signature, true);
if (!id)
return QJniObject();
@@ -1549,7 +1549,7 @@ QJniObject QJniObject::getStaticObjectField(jclass clazz,
const char *signature)
{
QJniEnvironment env;
- jfieldID id = getFieldID(env, clazz, fieldName, signature, true);
+ jfieldID id = getFieldID(env.jniEnv(), clazz, fieldName, signature, true);
if (!id)
return QJniObject();
@@ -1628,7 +1628,7 @@ template <> Q_CORE_EXPORT
void QJniObject::setField<jobject>(const char *fieldName, const char *signature, jobject value)
{
QJniEnvironment env;
- jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, signature);
+ jfieldID id = getCachedFieldID(env.jniEnv(), d->m_jclass, d->m_className, fieldName, signature);
if (id) {
env->SetObjectField(d->m_jobject, id, value);
env.checkAndClearExceptions();
@@ -1641,7 +1641,7 @@ void QJniObject::setField<jobjectArray>(const char *fieldName,
jobjectArray value)
{
QJniEnvironment env;
- jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, signature);
+ jfieldID id = getCachedFieldID(env.jniEnv(), d->m_jclass, d->m_className, fieldName, signature);
if (id) {
env->SetObjectField(d->m_jobject, id, value);
env.checkAndClearExceptions();
@@ -1672,7 +1672,7 @@ void QJniObject::setField<jobjectArray>(const char *fieldName,
QJniObject QJniObject::getObjectField(const char *fieldName, const char *signature) const
{
QJniEnvironment env;
- jfieldID id = getCachedFieldID(env, d->m_jclass, d->m_className, fieldName, signature);
+ jfieldID id = getCachedFieldID(env.jniEnv(), d->m_jclass, d->m_className, fieldName, signature);
if (!id)
return QJniObject();
@@ -1815,10 +1815,10 @@ bool QJniObject::isClassAvailable(const char *className)
{
QJniEnvironment env;
- if (!env)
+ if (!env.jniEnv())
return false;
- return loadClass(className, env);;
+ return loadClass(className, env.jniEnv());;
}
/*!
diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp
index ab31617900..7b1182066d 100644
--- a/src/plugins/platforms/android/androidjnimain.cpp
+++ b/src/plugins/platforms/android/androidjnimain.cpp
@@ -320,7 +320,7 @@ namespace QtAndroid
int createSurface(AndroidSurfaceClient *client, const QRect &geometry, bool onTop, int imageDepth)
{
QJniEnvironment env;
- if (!env)
+ if (!env.jniEnv())
return -1;
m_surfacesMutex.lock();
@@ -383,7 +383,7 @@ namespace QtAndroid
return;
QJniEnvironment env;
- if (!env)
+ if (!env.jniEnv())
return;
jint x = 0, y = 0, w = -1, h = -1;
if (!geometry.isNull()) {
@@ -412,7 +412,7 @@ namespace QtAndroid
}
QJniEnvironment env;
- if (env)
+ if (env.jniEnv())
env->CallStaticVoidMethod(m_applicationClass,
m_destroySurfaceMethodID,
surfaceId);
diff --git a/src/plugins/platforms/android/qandroidplatformmenu.cpp b/src/plugins/platforms/android/qandroidplatformmenu.cpp
index 1ac836faf2..8d79331f03 100644
--- a/src/plugins/platforms/android/qandroidplatformmenu.cpp
+++ b/src/plugins/platforms/android/qandroidplatformmenu.cpp
@@ -155,7 +155,7 @@ void QAndroidPlatformMenu::showPopup(const QWindow *parentWindow, const QRect &t
Q_UNUSED(parentWindow);
Q_UNUSED(item);
setVisible(true);
- QtAndroidMenu::showContextMenu(this, targetRect, QJniEnvironment());
+ QtAndroidMenu::showContextMenu(this, targetRect, QJniEnvironment().jniEnv());
}
QPlatformMenuItem *QAndroidPlatformMenu::menuItemForTag(quintptr tag) const
diff --git a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
index f69e9e389f..2020f02456 100644
--- a/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformopenglwindow.cpp
@@ -176,7 +176,7 @@ void QAndroidPlatformOpenGLWindow::createEgl(EGLConfig config)
{
clearEgl();
QJniEnvironment env;
- m_nativeWindow = ANativeWindow_fromSurface(env, m_androidSurfaceObject.object());
+ m_nativeWindow = ANativeWindow_fromSurface(env.jniEnv(), m_androidSurfaceObject.object());
m_androidSurfaceObject = QJniObject();
m_eglSurface = eglCreateWindowSurface(m_eglDisplay, config, m_nativeWindow, NULL);
m_format = q_glFormatFromConfig(m_eglDisplay, config, window()->requestedFormat());
diff --git a/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp b/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp
index 2cd0b7ea76..278554e496 100644
--- a/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp
+++ b/tests/auto/corelib/kernel/qjnienvironment/tst_qjnienvironment.cpp
@@ -26,6 +26,8 @@
**
****************************************************************************/
+#include <jni.h>
+
#include <QtCore/QJniEnvironment>
#include <QtCore/QJniObject>
#include <QtTest/QtTest>
@@ -56,7 +58,7 @@ void tst_QJniEnvironment::jniEnv()
JNIEnv *jni = 0;
QCOMPARE(javaVM->GetEnv((void**)&jni, JNI_VERSION_1_6), JNI_OK);
- JNIEnv *e = env;
+ JNIEnv *e = env.jniEnv();
QVERIFY(e);
QCOMPARE(env->GetVersion(), JNI_VERSION_1_6);
@@ -71,11 +73,11 @@ void tst_QJniEnvironment::jniEnv()
env->ExceptionClear();
QVERIFY(env->FindClass("java/lang/Object"));
- QVERIFY(!QJniEnvironment::checkAndClearExceptions(env));
+ QVERIFY(!QJniEnvironment::checkAndClearExceptions(env.jniEnv()));
// try to find a nonexistent class
QVERIFY(!env->FindClass("this/doesnt/Exist"));
- QVERIFY(QJniEnvironment::checkAndClearExceptions(env));
+ QVERIFY(QJniEnvironment::checkAndClearExceptions(env.jniEnv()));
// try to find an existing class with QJniEnvironment
QJniEnvironment env;
@@ -110,6 +112,7 @@ void tst_QJniEnvironment::javaVM()
static void callbackFromJava(JNIEnv *env, jobject /*thiz*/, jstring value)
{
+ Q_UNUSED(env)
registerNativesString = QJniObject(value).toString();
}