summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qbluetoothservicediscoveryagent.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@qt.io>2017-10-17 13:04:45 +0200
committerAlex Blasche <alexander.blasche@qt.io>2017-10-17 13:55:46 +0200
commitd6c4d74f4f32699a013705d492ee467ec5006df1 (patch)
tree9ffeaaa124986049fd5b6a992f61b26b35badd10 /src/bluetooth/qbluetoothservicediscoveryagent.cpp
parente26edb020084554e8b567d3bc15ce638394cf7fc (diff)
parent125cdccc346903d6e70ed26289cdaed85e26ec3f (diff)
Merge remote-tracking branch 'gerrit/dev' into win
Diffstat (limited to 'src/bluetooth/qbluetoothservicediscoveryagent.cpp')
-rw-r--r--src/bluetooth/qbluetoothservicediscoveryagent.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/bluetooth/qbluetoothservicediscoveryagent.cpp b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
index 8998d608..d6163f0e 100644
--- a/src/bluetooth/qbluetoothservicediscoveryagent.cpp
+++ b/src/bluetooth/qbluetoothservicediscoveryagent.cpp
@@ -442,7 +442,7 @@ void QBluetoothServiceDiscoveryAgentPrivate::startDeviceDiscovery()
setDiscoveryState(DeviceDiscovery);
- deviceDiscoveryAgent->start();
+ deviceDiscoveryAgent->start(QBluetoothDeviceDiscoveryAgent::ClassicMethod);
}
/*!
@@ -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;