summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2013-09-24 15:31:23 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-25 08:33:49 +0200
commit445efa40a290da0f72a4b7c213ea991193d51917 (patch)
tree5e1a653bb9478eea395b318cd3b161519e004b33 /src
parent0b1e30aee41cbbe487cd072268cf784f8b09bcdf (diff)
Fixed QJNIEnvironment reference counting.
Change-Id: I02369e0c6472375efeffed577d39b764c591e025 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/kernel/qjni.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/corelib/kernel/qjni.cpp b/src/corelib/kernel/qjni.cpp
index 17678fcbba..f26d4379d3 100644
--- a/src/corelib/kernel/qjni.cpp
+++ b/src/corelib/kernel/qjni.cpp
@@ -160,10 +160,12 @@ QJNIEnvironmentPrivate::QJNIEnvironmentPrivate()
: jniEnv(0)
{
JavaVM *vm = QtAndroidPrivate::javaVM();
- if (vm->GetEnv((void**)&jniEnv, JNI_VERSION_1_6) != JNI_EDETACHED)
- return;
+ if (vm->GetEnv((void**)&jniEnv, JNI_VERSION_1_6) == JNI_EDETACHED) {
+ if (vm->AttachCurrentThread(&jniEnv, 0) < 0)
+ return;
+ }
- if (vm->AttachCurrentThread(&jniEnv, 0) < 0)
+ if (!jniEnv)
return;
if (!refCount->hasLocalData())