summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2022-08-11 14:07:57 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-08-15 09:18:53 +0000
commit0a4112424a51f995a388391108f593ab1517f3bf (patch)
treef2422b724da8ff91175bb35758d7e033ac0a5417
parent5a9a1808710adaf3a781449caad11ebd006b4577 (diff)
Windows: properly cache discovered services in QLowEnergyController
GattDeviceService can return AccessDenied error when queried for service details, if it was not closed properly when it was last used. Commit 0b60ca266f0fe27053a58eff3dbd903e3a1678ca introduces a service cache, which keeps track of the used services, and ensures that they are properly closed before being reused. This patch puts all the newly-discovered services into the service cache, which helps to prevent some errors when later querying for service details. Task-number: QTBUG-94001 Change-Id: Icdf26e2aaece5c44d9268ec907750242b61c64f7 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Juha Vuolle <juha.vuolle@insta.fi> (cherry picked from commit 093501477f91b2184db3f60f1f87a6d31cbf1577) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/bluetooth/qlowenergycontroller_winrt.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/bluetooth/qlowenergycontroller_winrt.cpp b/src/bluetooth/qlowenergycontroller_winrt.cpp
index 5f5850f6..7b700250 100644
--- a/src/bluetooth/qlowenergycontroller_winrt.cpp
+++ b/src/bluetooth/qlowenergycontroller_winrt.cpp
@@ -1057,6 +1057,7 @@ HRESULT QLowEnergyControllerPrivateWinRT::onServiceDiscoveryFinished(ABI::Window
hr = deviceService->get_Uuid(&guuid);
WARN_AND_CONTINUE_IF_FAILED(hr, "Could not obtain service's Uuid");
const QBluetoothUuid service(guuid);
+ m_openedServices[service] = deviceService;
qCDebug(QT_BT_WINDOWS_SERVICE_THREAD) << __FUNCTION__
<< "Changing service pointer from thread"