diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index 231e973106d..eada7b7792d 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -1779,6 +1779,12 @@ void QDBusConnectionPrivate::waitForFinished(QDBusPendingCallPrivate *pcall) } } +static inline bool waitingForFinishedIsSet(QDBusPendingCallPrivate *call) +{ + const QMutexLocker locker(&call->mutex); + return call->waitingForFinished; +} + void QDBusConnectionPrivate::processFinishedCall(QDBusPendingCallPrivate *call) { QDBusConnectionPrivate *connection = const_cast(call->connection); @@ -1828,7 +1834,7 @@ void QDBusConnectionPrivate::processFinishedCall(QDBusPendingCallPrivate *call) emit connection->callWithCallbackFailed(QDBusError(msg), call->sentMessage); if (call->autoDelete) { - Q_ASSERT(!call->waitingForFinished); // can't wait on a call with autoDelete! + Q_ASSERT(!waitingForFinishedIsSet(call)); // can't wait on a call with autoDelete! delete call; } }