diff options
Diffstat (limited to 'src/platformsupport/jniconvenience/qjnihelpers_p.h')
-rw-r--r-- | src/platformsupport/jniconvenience/qjnihelpers_p.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/platformsupport/jniconvenience/qjnihelpers_p.h b/src/platformsupport/jniconvenience/qjnihelpers_p.h index fb44d156bd..437a0d039a 100644 --- a/src/platformsupport/jniconvenience/qjnihelpers_p.h +++ b/src/platformsupport/jniconvenience/qjnihelpers_p.h @@ -157,33 +157,39 @@ private: template <class T, class X> bool operator==(const QJNILocalRef<T> &ptr1, const QJNILocalRef<X> &ptr2) { - return ptr1.m_obj == ptr2.m_obj; + QAttachedJNIEnv env; + return env->IsSameObject(ptr1.m_obj, ptr2.m_obj); } template <class T, class X> bool operator!=(const QJNILocalRef<T> &ptr1, const QJNILocalRef<X> &ptr2) { - return ptr1.m_obj != ptr2.m_obj; + QAttachedJNIEnv env; + return !env->IsSameObject(ptr1.m_obj, ptr2.m_obj); } template <class T, class X> bool operator==(const QJNILocalRef<T> &ptr1, X ptr2) { - return ptr1.m_obj == ptr2; + QAttachedJNIEnv env; + return env->IsSameObject(ptr1.m_obj, ptr2); } template <class T, class X> bool operator==(T ptr1, const QJNILocalRef<X> &ptr2) { - return ptr1 == ptr2.m_obj; + QAttachedJNIEnv env; + return env->IsSameObject(ptr1, ptr2.m_obj); } template <class T, class X> bool operator!=(const QJNILocalRef<T> &ptr1, X ptr2) { - return !(ptr1 == ptr2); + QAttachedJNIEnv env; + return !env->IsSameObject(ptr1.m_obj, ptr2); } template <class T, class X> bool operator!=(const T *ptr1, const QJNILocalRef<X> &ptr2) { - return !(ptr2 == ptr1); + QAttachedJNIEnv env; + return !env->IsSameObject(ptr1, ptr2.m_obj); } QT_END_NAMESPACE |