Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-connectivity for 
openSUSE:Factory checked in at 2024-12-05 17:05:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-connectivity (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-connectivity.new.28523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-connectivity"

Thu Dec  5 17:05:29 2024 rev:27 rq:1228184 version:6.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-connectivity/qt6-connectivity.changes        
2024-10-17 18:37:45.606305334 +0200
+++ 
/work/SRC/openSUSE:Factory/.qt6-connectivity.new.28523/qt6-connectivity.changes 
    2024-12-05 17:06:15.903624041 +0100
@@ -1,0 +2,6 @@
+Mon Dec  2 13:01:59 UTC 2024 - Christophe Marin <[email protected]>
+
+- Update to 6.8.1:
+  * https://www.qt.io/blog/qt-6.8.1-released
+
+-------------------------------------------------------------------

Old:
----
  qtconnectivity-everywhere-src-6.8.0.tar.xz

New:
----
  qtconnectivity-everywhere-src-6.8.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-connectivity.spec ++++++
--- /var/tmp/diff_new_pack.fEAyuL/_old  2024-12-05 17:06:16.903665919 +0100
+++ /var/tmp/diff_new_pack.fEAyuL/_new  2024-12-05 17:06:16.903665919 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.8.0
+%define real_version 6.8.1
 %define short_version 6.8
 %define tar_name qtconnectivity-everywhere-src
 %define tar_suffix %{nil}
@@ -27,7 +27,7 @@
 %endif
 #
 Name:           qt6-connectivity%{?pkg_suffix}
-Version:        6.8.0
+Version:        6.8.1
 Release:        0
 Summary:        Qt 6 connectivity tools and libraries
 License:        LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)
@@ -101,7 +101,8 @@
 %autosetup -p1 -n %{tar_name}-%{real_version}%{tar_suffix}
 
 %build
-%cmake_qt6
+%cmake_qt6 \
+  -DQT_GENERATE_SBOM:BOOL=FALSE
 
 %{qt6_build}
 

++++++ qtconnectivity-everywhere-src-6.8.0.tar.xz -> 
qtconnectivity-everywhere-src-6.8.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtconnectivity-everywhere-src-6.8.0/.cmake.conf 
new/qtconnectivity-everywhere-src-6.8.1/.cmake.conf
--- old/qtconnectivity-everywhere-src-6.8.0/.cmake.conf 2024-10-02 
16:25:40.000000000 +0200
+++ new/qtconnectivity-everywhere-src-6.8.1/.cmake.conf 2024-11-21 
04:34:01.000000000 +0100
@@ -1,4 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.8.0")
+set(QT_REPO_MODULE_VERSION "6.8.1")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
 list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_FOREACH=1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtconnectivity-everywhere-src-6.8.0/.tag 
new/qtconnectivity-everywhere-src-6.8.1/.tag
--- old/qtconnectivity-everywhere-src-6.8.0/.tag        2024-10-02 
16:25:40.000000000 +0200
+++ new/qtconnectivity-everywhere-src-6.8.1/.tag        2024-11-21 
04:34:01.000000000 +0100
@@ -1 +1 @@
-b789f7e2fbd9e3706a0b53b1798ee0cfdab639f2
+c98e9bfee39f85914b7e7fb0ee991a2ac681f365
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/dependencies.yaml 
new/qtconnectivity-everywhere-src-6.8.1/dependencies.yaml
--- old/qtconnectivity-everywhere-src-6.8.0/dependencies.yaml   2024-10-02 
16:25:40.000000000 +0200
+++ new/qtconnectivity-everywhere-src-6.8.1/dependencies.yaml   2024-11-21 
04:34:01.000000000 +0100
@@ -1,7 +1,7 @@
 dependencies:
   ../qtbase:
-    ref: b839e9b36db3a4e50dfb34521d8ef8de1fd01969
+    ref: 0db4321f2f13c6870283f3fcc0f1a462fd7cf663
     required: true
   ../qtdeclarative:
-    ref: 2884c601242f030307a5acdca984b3aa0d34e064
+    ref: b34fca34941ecdbf99819bbf58b45332ac9e6fa7
     required: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/android/bluetooth/CMakeLists.txt 
new/qtconnectivity-everywhere-src-6.8.1/src/android/bluetooth/CMakeLists.txt
--- 
old/qtconnectivity-everywhere-src-6.8.0/src/android/bluetooth/CMakeLists.txt    
    2024-10-02 16:25:40.000000000 +0200
+++ 
new/qtconnectivity-everywhere-src-6.8.1/src/android/bluetooth/CMakeLists.txt    
    2024-11-21 04:34:01.000000000 +0100
@@ -9,6 +9,7 @@
     src/org/qtproject/qt/android/bluetooth/QtBluetoothSocketServer.java
     src/org/qtproject/qt/android/bluetooth/QtBluetoothGattCharacteristic.java
     src/org/qtproject/qt/android/bluetooth/QtBluetoothGattDescriptor.java
+    src/org/qtproject/qt/android/bluetooth/QtBluetoothUtility.java
 )
 
 qt_internal_add_jar(Qt${QtConnectivity_VERSION_MAJOR}AndroidBluetooth
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothUtility.java
 
new/qtconnectivity-everywhere-src-6.8.1/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothUtility.java
--- 
old/qtconnectivity-everywhere-src-6.8.0/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothUtility.java
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtconnectivity-everywhere-src-6.8.1/src/android/bluetooth/src/org/qtproject/qt/android/bluetooth/QtBluetoothUtility.java
        2024-11-21 04:34:01.000000000 +0100
@@ -0,0 +1,110 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+
+package org.qtproject.qt.android.bluetooth;
+
+import android.Manifest;
+import android.os.Build;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageInfo;
+import android.content.res.AssetManager;
+import android.content.res.XmlResourceParser;
+import android.util.Log;
+
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+
+class QtBluetoothUtility {
+
+    private static final String TAG = "QtBluetoothUtility";
+
+    // The check if bluetooth scanning requires location is somewhat 
computationally
+    // expensive and doesn't change at runtime, so we cache the result
+    private static boolean isScanRequiresLocationChecked = false;
+    private static boolean scanRequiresLocation = true;
+
+    // Returns whether or not Location + Location permission is required for 
Bluetooth scan
+    //
+    // API-level < 31: returns always true
+    //
+    // API-level >= 31: returns true if BLUETOOTH_SCAN doesn't have 
'neverForLocation' set.
+    // Returns false if BLUETOOTH_SCAN has 'neverForLocation' set, or in case 
of any
+    // unexpected failure.
+    public static synchronized boolean bluetoothScanRequiresLocation(final 
Context qtContext)
+    {
+        Log.d(TAG, "Checking if Location is required for bluetooth scan");
+        if (isScanRequiresLocationChecked) {
+            Log.d(TAG, "Using cached result for scan needing location: " + 
scanRequiresLocation);
+            return scanRequiresLocation;
+        }
+
+        // API-levels below 31 always need location
+        if (Build.VERSION.SDK_INT < 31) {
+            Log.d(TAG, "SDK version is below 31, assuming Location needed");
+            scanRequiresLocation = true;
+            isScanRequiresLocationChecked = true;
+            return scanRequiresLocation;
+        }
+        if (qtContext == null) {
+            Log.w(TAG, "No context object provided");
+            return false;
+        }
+
+        // API-levels 31 and above require Location if no 'neverForLocation' 
assertion
+        XmlResourceParser xmlParser = null;
+        try {
+            // Open the used AndroidManifest.xml for traversing
+            final AssetManager assetManager =
+                        
qtContext.createPackageContext(qtContext.getPackageName(), 0).getAssets();
+            xmlParser = assetManager.openXmlResourceParser(0, 
"AndroidManifest.xml");
+
+            int eventType = xmlParser.getEventType();
+            while (eventType != XmlPullParser.END_DOCUMENT) {
+                // Check if the current tag is a <uses-permission> tag
+                if (eventType == XmlPullParser.START_TAG
+                                                && 
xmlParser.getName().equals("uses-permission")) {
+                    String permissionName = null;
+                    int usesPermissionFlags = 0;
+
+                    // Loop through the attributes to see if there's 
BLUETOOTH_SCAN
+                    // permission with 'neverForLocation' set
+                    for (int i = 0; i < xmlParser.getAttributeCount(); i++) {
+                        String attributeName = xmlParser.getAttributeName(i);
+                        if (attributeName.equals("name")) {
+                            permissionName = xmlParser.getAttributeValue(i);
+                        } else if 
(attributeName.equals("usesPermissionFlags")) {
+                            String flagValue = xmlParser.getAttributeValue(i);
+                            if (flagValue.startsWith("0x")) {
+                                usesPermissionFlags = 
Integer.parseInt(flagValue.substring(2), 16);
+                            } else {
+                                usesPermissionFlags = 
Integer.parseInt(flagValue);
+                            }
+                        }
+                    }
+                    if 
(permissionName.equals(Manifest.permission.BLUETOOTH_SCAN)) {
+                        if ((usesPermissionFlags & 
PackageInfo.REQUESTED_PERMISSION_NEVER_FOR_LOCATION) != 0) {
+                            Log.d(TAG, "BLUETOOTH_SCAN with 'neverForLocation' 
found");
+                            scanRequiresLocation = false;
+                        } else {
+                            Log.d(TAG, "BLUETOOTH_SCAN without 
'neverForLocation' found");
+                            scanRequiresLocation = true;
+                        }
+                        isScanRequiresLocationChecked = true;
+                        return scanRequiresLocation;
+                    }
+                }
+                eventType = xmlParser.nextToken();
+            }
+        } catch (Exception ex) {
+            Log.w(TAG, "An error occurred while checking Bluetooth's location 
need: " + ex);
+            scanRequiresLocation = false;
+        } finally {
+            if (xmlParser != null)
+                xmlParser.close();
+        }
+        Log.d(TAG, "BLUETOOTH_SCAN permission not found");
+        isScanRequiresLocationChecked = true;
+        return scanRequiresLocation;
+    }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/CMakeLists.txt 
new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/CMakeLists.txt
--- old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/CMakeLists.txt        
2024-10-02 16:25:40.000000000 +0200
+++ new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/CMakeLists.txt        
2024-11-21 04:34:01.000000000 +0100
@@ -126,16 +126,32 @@
     set_property(TARGET Bluetooth APPEND PROPERTY 
QT_ANDROID_BUNDLED_JAR_DEPENDENCIES
         jar/Qt${QtConnectivity_VERSION_MAJOR}AndroidBluetooth.jar
     )
-    set_property(TARGET Bluetooth APPEND PROPERTY QT_ANDROID_PERMISSIONS
-        android.permission.ACCESS_FINE_LOCATION
-        android.permission.BLUETOOTH
-        android.permission.BLUETOOTH_ADMIN
-        # Android 12 / SDK 31+
-        android.permission.BLUETOOTH_SCAN
-        android.permission.BLUETOOTH_ADVERTISE
-        android.permission.BLUETOOTH_CONNECT
+    qt_internal_add_android_permission(Bluetooth
+        NAME android.permission.ACCESS_FINE_LOCATION
+        ATTRIBUTES maxSdkVersion 30
+    )
+    qt_internal_add_android_permission(Bluetooth
+        NAME android.permission.BLUETOOTH
+        ATTRIBUTES maxSdkVersion 30
+    )
+    qt_internal_add_android_permission(Bluetooth
+        NAME android.permission.BLUETOOTH_ADMIN
+        ATTRIBUTES maxSdkVersion 30
+    )
+    qt_internal_add_android_permission(Bluetooth
+        NAME android.permission.BLUETOOTH_SCAN
+        ATTRIBUTES
+            minSdkVersion 31
+            usesPermissionFlags neverForLocation
+    )
+    qt_internal_add_android_permission(Bluetooth
+        NAME android.permission.BLUETOOTH_ADVERTISE
+        ATTRIBUTES minSdkVersion 31
+    )
+    qt_internal_add_android_permission(Bluetooth
+        NAME android.permission.BLUETOOTH_CONNECT
+        ATTRIBUTES minSdkVersion 31
     )
-
     qt_internal_extend_target(Bluetooth
         SOURCES
             android/androidbroadcastreceiver.cpp 
android/androidbroadcastreceiver_p.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/android/jni_android_p.h 
new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/android/jni_android_p.h
--- 
old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/android/jni_android_p.h   
    2024-10-02 16:25:40.000000000 +0200
+++ 
new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/android/jni_android_p.h   
    2024-11-21 04:34:01.000000000 +0100
@@ -23,6 +23,8 @@
 QT_BEGIN_NAMESPACE
 
 // CLASS declaration implies also TYPE declaration
+Q_DECLARE_JNI_CLASS(QtBtUtility,
+                    "org/qtproject/qt/android/bluetooth/QtBluetoothUtility")
 Q_DECLARE_JNI_CLASS(QtBtBroadcastReceiver,
                     
"org/qtproject/qt/android/bluetooth/QtBluetoothBroadcastReceiver")
 Q_DECLARE_JNI_CLASS(QtBtGattCharacteristic,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp
 
new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp
--- 
old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp
    2024-10-02 16:25:40.000000000 +0200
+++ 
new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/qbluetoothdevicediscoveryagent_android.cpp
    2024-11-21 04:34:01.000000000 +0100
@@ -8,6 +8,7 @@
 #include "qbluetoothdevicediscoveryagent_p.h"
 #include <QCoreApplication>
 #include <QtCore/QLoggingCategory>
+#include <QtCore/qpermissions.h>
 #include <QtBluetooth/QBluetoothAddress>
 #include <QtBluetooth/QBluetoothDeviceInfo>
 #include <QtCore/QJniEnvironment>
@@ -144,41 +145,65 @@
     }
     qCDebug(QT_BT_ANDROID) << "QBluetoothPermission::Access permission 
available";
 
-    // Double check Location service is turned on
-    bool locationTurnedOn = true; // backwards compatible behavior to previous 
Qt versions
-    const  QJniObject locString = QJniObject::getStaticObjectField(
-                "android/content/Context", "LOCATION_SERVICE", 
"Ljava/lang/String;");
+    const bool scanNeedsLocation = 
(bool)QtJniTypes::QtBtUtility::callStaticMethod<jboolean>(
+            "bluetoothScanRequiresLocation", 
QNativeInterface::QAndroidApplication::context());
 
-    const QJniObject locService =
+    qCDebug(QT_BT_ANDROID) << "Is location service and location permission 
required for scan:"
+                           << scanNeedsLocation;
+
+    if (scanNeedsLocation) {
+        // Double check we have location permission. With API-level < 31 it is 
already
+        // guaranteed by the ensureAndroidPermission() above, but with 
API-level 31+ it is
+        // required additionally if 'neverForLocation' assertion isn't set.
+        QLocationPermission locationPermission;
+        locationPermission.setAccuracy(QLocationPermission::Accuracy::Precise);
+
+        if (qApp->checkPermission(locationPermission) != 
Qt::PermissionStatus::Granted) {
+            qCWarning(QT_BT_ANDROID) << "Search not possible due to missing 
location permissions";
+            lastError = 
QBluetoothDeviceDiscoveryAgent::LocationServiceTurnedOffError;
+            errorString = QBluetoothDeviceDiscoveryAgent::tr("Location 
permission not granted. Search is not possible.");
+            emit q->errorOccurred(lastError);
+            return;
+        }
+
+        qCDebug(QT_BT_ANDROID) << "Location permission granted";
+
+        // Double check Location service is turned on
+        bool locationTurnedOn = true; // backwards compatible behavior to 
previous Qt versions
+        const  QJniObject locString = QJniObject::getStaticObjectField(
+            "android/content/Context", "LOCATION_SERVICE", 
"Ljava/lang/String;");
+
+        const QJniObject locService =
             
QJniObject(QNativeInterface::QAndroidApplication::context()).callMethod<jobject>(
                 "getSystemService",
                 locString.object<jstring>());
 
-    if (locService.isValid()) {
-        if (QNativeInterface::QAndroidApplication::sdkVersion() >= 28) {
-            locationTurnedOn = 
bool(locService.callMethod<jboolean>("isLocationEnabled"));
-        } else {
-            // check whether there is any enabled provider
-            QJniObject listOfEnabledProviders =
+        if (locService.isValid()) {
+            if (QNativeInterface::QAndroidApplication::sdkVersion() >= 28) {
+                locationTurnedOn = 
bool(locService.callMethod<jboolean>("isLocationEnabled"));
+            } else {
+                // check whether there is any enabled provider
+                QJniObject listOfEnabledProviders =
                     locService.callMethod<QtJniTypes::List>("getProviders", 
true);
 
-            if (listOfEnabledProviders.isValid()) {
-                int size = listOfEnabledProviders.callMethod<jint>("size");
-                locationTurnedOn = size > 0;
-                qCDebug(QT_BT_ANDROID) << size << "enabled location providers 
detected.";
+                if (listOfEnabledProviders.isValid()) {
+                    int size = listOfEnabledProviders.callMethod<jint>("size");
+                    locationTurnedOn = size > 0;
+                    qCDebug(QT_BT_ANDROID) << size << "enabled location 
providers detected.";
+                }
             }
         }
-    }
 
-    if (!locationTurnedOn) {
-        qCWarning(QT_BT_ANDROID) << "Search not possible due to turned off 
Location service";
-        lastError = 
QBluetoothDeviceDiscoveryAgent::LocationServiceTurnedOffError;
-        errorString = QBluetoothDeviceDiscoveryAgent::tr("Location service 
turned off. Search is not possible.");
-        emit q->errorOccurred(lastError);
-        return;
-    }
+        if (!locationTurnedOn) {
+            qCWarning(QT_BT_ANDROID) << "Search not possible due to turned off 
Location service";
+            lastError = 
QBluetoothDeviceDiscoveryAgent::LocationServiceTurnedOffError;
+            errorString = QBluetoothDeviceDiscoveryAgent::tr("Location service 
turned off. Search is not possible.");
+            emit q->errorOccurred(lastError);
+            return;
+        }
 
-    qCDebug(QT_BT_ANDROID) << "Location turned on";
+        qCDebug(QT_BT_ANDROID) << "Location turned on";
+    }
 
     // install Java BroadcastReceiver
     if (!receiver) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/qlowenergyadvertisingdata.cpp
 
new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/qlowenergyadvertisingdata.cpp
--- 
old/qtconnectivity-everywhere-src-6.8.0/src/bluetooth/qlowenergyadvertisingdata.cpp
 2024-10-02 16:25:40.000000000 +0200
+++ 
new/qtconnectivity-everywhere-src-6.8.1/src/bluetooth/qlowenergyadvertisingdata.cpp
 2024-11-21 04:34:01.000000000 +0100
@@ -212,8 +212,9 @@
   \note If \a data is longer than 31 bytes, it will be truncated. It is the 
caller's responsibility
         to ensure that \a data is well-formed.
 
-  Providing the raw advertising data is not supported on BlueZ DBus backend as 
BlueZ does not
-  support it. This may change in a future release.
+  Setting raw advertising data is only supported on the \l {Linux Specific}
+  {Linux Bluetooth Kernel API} backend. Other backends do not allow to specify
+  the raw advertising data as a global field.
  */
 void QLowEnergyAdvertisingData::setRawData(const QByteArray &data)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/nfc/qapduutils.cpp 
new/qtconnectivity-everywhere-src-6.8.1/src/nfc/qapduutils.cpp
--- old/qtconnectivity-everywhere-src-6.8.0/src/nfc/qapduutils.cpp      
2024-10-02 16:25:40.000000000 +0200
+++ new/qtconnectivity-everywhere-src-6.8.1/src/nfc/qapduutils.cpp      
2024-11-21 04:34:01.000000000 +0100
@@ -23,12 +23,13 @@
 */
 QResponseApdu::QResponseApdu(const QByteArray &response)
 {
-    if (response.size() < 2) {
+    const auto view = qToByteArrayViewIgnoringNull(response);
+    if (view.size() < 2) {
         m_status = Empty;
         m_data = response;
     } else {
-        const auto dataSize = response.size() - 2;
-        m_status = 
qFromBigEndian(qFromUnaligned<uint16_t>(response.constData() + dataSize));
+        const auto dataSize = view.size() - 2;
+        m_status = qFromBigEndian(qFromUnaligned<uint16_t>(view.data() + 
dataSize));
         m_data = response.left(dataSize);
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/nfc/qnearfieldmanager_ios.mm 
new/qtconnectivity-everywhere-src-6.8.1/src/nfc/qnearfieldmanager_ios.mm
--- old/qtconnectivity-everywhere-src-6.8.0/src/nfc/qnearfieldmanager_ios.mm    
2024-10-02 16:25:40.000000000 +0200
+++ new/qtconnectivity-everywhere-src-6.8.1/src/nfc/qnearfieldmanager_ios.mm    
2024-11-21 04:34:01.000000000 +0100
@@ -204,7 +204,10 @@
 {
     auto i = detectedTargets.begin();
     while (i != detectedTargets.end()) {
-        (*i)->invalidate();
+        if (*i)
+            (*i)->invalidate();
+        else
+            qCWarning(QT_IOS_NFC, "Stale private near field target found");
         i = detectedTargets.erase(i);
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtconnectivity-everywhere-src-6.8.0/src/nfc/qnearfieldmanager_ios_p.h 
new/qtconnectivity-everywhere-src-6.8.1/src/nfc/qnearfieldmanager_ios_p.h
--- old/qtconnectivity-everywhere-src-6.8.0/src/nfc/qnearfieldmanager_ios_p.h   
2024-10-02 16:25:40.000000000 +0200
+++ new/qtconnectivity-everywhere-src-6.8.1/src/nfc/qnearfieldmanager_ios_p.h   
2024-11-21 04:34:01.000000000 +0100
@@ -18,6 +18,7 @@
 
 #include "qnearfieldmanager_p.h"
 
+#include <QPointer>
 #include <QTimer>
 
 #import <os/availability.h>
@@ -61,7 +62,7 @@
     bool detectionRunning = false;
     bool isSessionScheduled = false;
     QTimer sessionTimer;
-    QList<QNearFieldTargetPrivateImpl *> detectedTargets;
+    QList<QPointer<QNearFieldTargetPrivateImpl>> detectedTargets;
     QNearFieldTarget::AccessMethod activeAccessMethod = 
QNearFieldTarget::UnknownAccess;
 
     bool scheduleSession(QNearFieldTarget::AccessMethod accessMethod);

Reply via email to