diff options
Diffstat (limited to 'src/corelib/kernel/qjni_p.h')
-rw-r--r-- | src/corelib/kernel/qjni_p.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/corelib/kernel/qjni_p.h b/src/corelib/kernel/qjni_p.h index ab98aec1bf..b1f0011b94 100644 --- a/src/corelib/kernel/qjni_p.h +++ b/src/corelib/kernel/qjni_p.h @@ -178,11 +178,13 @@ public: jobject jobj = static_cast<jobject>(o); if (!isSameObject(jobj)) { d = QSharedPointer<QJNIObjectData>(new QJNIObjectData()); - QJNIEnvironmentPrivate env; - d->m_jobject = env->NewGlobalRef(jobj); - jclass objectClass = env->GetObjectClass(jobj); - d->m_jclass = static_cast<jclass>(env->NewGlobalRef(objectClass)); - env->DeleteLocalRef(objectClass); + if (jobj) { + QJNIEnvironmentPrivate env; + d->m_jobject = env->NewGlobalRef(jobj); + jclass objectClass = env->GetObjectClass(jobj); + d->m_jclass = static_cast<jclass>(env->NewGlobalRef(objectClass)); + env->DeleteLocalRef(objectClass); + } } return *this; |