summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothservicediscoveryagent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bluetooth/qbluetoothservicediscoveryagent.cpp')
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent.cpp b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
index 7daab4b7..d6163f0e 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
@@ -450,6 +450,10 @@ void QBluetoothServiceDiscoveryAgentPrivate::startDeviceDiscovery()
*/
void QBluetoothServiceDiscoveryAgentPrivate::stopDeviceDiscovery()
{
+ // disconnect to avoid recursion during stop() - QTBUG-60131
+ // we don't care about a potential signals from device discovery agent anymore
+ deviceDiscoveryAgent->disconnect();
+
deviceDiscoveryAgent->stop();
delete deviceDiscoveryAgent;
deviceDiscoveryAgent = 0;
@@ -497,6 +501,10 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_deviceDiscoveryError(QBluetoothD
error = static_cast<QBluetoothServiceDiscoveryAgent::Error>(newError);
errorString = deviceDiscoveryAgent->errorString();
+ // disconnect to avoid recursion during stop() - QTBUG-60131
+ // we don't care about a potential signals from device discovery agent anymore
+ deviceDiscoveryAgent->disconnect();
+
deviceDiscoveryAgent->stop();
delete deviceDiscoveryAgent;
deviceDiscoveryAgent = 0;