Fix crash when a standard bus isn't available
Commit 1f6fa1f37a
added a way of
suspending delivery of messages to standard buses when they connect and
resuming delivery when the main loop starts. As a side-effect, we caused
an attempt to do dispatching even after the connection failed. The D-Bus
library doesn't like that.
Task-number: QTBUG-51299
Change-Id: I0c94a5c2846b48c8aea7ffff143564f7fcede890
Reviewed-by: David Faure <david.faure@kdab.com>
This commit is contained in:
parent
bcdcde0906
commit
469e293286
@ -208,7 +208,7 @@ QDBusConnectionPrivate *QDBusConnectionManager::connectToBus(QDBusConnection::Bu
|
||||
data.suspendedDelivery = suspendedDelivery;
|
||||
|
||||
emit connectionRequested(&data);
|
||||
if (suspendedDelivery) {
|
||||
if (suspendedDelivery && data.result->connection) {
|
||||
data.result->ref.ref();
|
||||
QDBusConnectionDispatchEnabler *o = new QDBusConnectionDispatchEnabler(data.result);
|
||||
QTimer::singleShot(0, o, SLOT(execute()));
|
||||
@ -291,7 +291,7 @@ void QDBusConnectionManager::executeConnectionRequest(QDBusConnectionManager::Co
|
||||
// will lock in QDBusConnectionPrivate::connectRelay()
|
||||
d->setConnection(c, error);
|
||||
d->createBusService();
|
||||
if (data->suspendedDelivery)
|
||||
if (c && data->suspendedDelivery)
|
||||
d->setDispatchEnabled(false);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user