From 61f56762480863ba6865c7081ed35c702b50ead4 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sun, 19 Sep 2021 19:57:41 +0200 Subject: [PATCH] also set pointer size to 64bit fixed on the C++ size Signed-off-by: Jonathan Bagg --- androidnsd.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/androidnsd.cpp b/androidnsd.cpp index 4d72d6e..5b61771 100644 --- a/androidnsd.cpp +++ b/androidnsd.cpp @@ -49,9 +49,10 @@ QZeroConfPrivate::QZeroConfPrivate(QZeroConf *parent) { "onServiceNameChangedJNI", "(JLjava/lang/String;)V", (void*)QZeroConfPrivate::onServiceNameChangedJNI } }; - // Passing "this" as ID down to Java so we can access "this" in callbacks. // There seems to be no straight forward way to match the "thiz" pointer from JNI calls to our pointer of the Java class - nsdManager = QAndroidJniObject("qtzeroconf/QZeroConfNsdManager", "(JLandroid/content/Context;)V", reinterpret_cast(this), QtAndroid::androidActivity().object()); + // Passing "this" as ID down to Java so we can access "this" in callbacks. + // Note: needs to be quint64 as uintptr_t might be 32 or 64 bit depending on the system, while Java expects a jlong which is always 64 bit. + nsdManager = QAndroidJniObject("qtzeroconf/QZeroConfNsdManager", "(JLandroid/content/Context;)V", reinterpret_cast(this), QtAndroid::androidActivity().object()); if (nsdManager.isValid()) { jclass objectClass = env->GetObjectClass(nsdManager.object()); env->RegisterNatives(objectClass, methods, sizeof(methods) / sizeof(methods[0]));