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);