From 074c664b5c875d83d12df89dfa7a2f4b4af21285 Mon Sep 17 00:00:00 2001 From: Ievgenii Meshcheriakov Date: Fri, 1 Sep 2023 16:17:48 +0200 Subject: [PATCH] QDBusConnectionPrivate: Emit newConnection signal on QDBusServer directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove indirection via _q_newConnection() because the server object may not exist anymore when this method is invoked. This amends commit d865e3ef1db53770f96f3800f75467edd7cdf3c7. Task-number: QTBUG-116621 Change-Id: I5f9a667bc0e2e3cd36492c24767505031fe0e1d7 Reviewed-by: MÃ¥rten Nordheim Reviewed-by: Thiago Macieira Reviewed-by: Qt CI Bot --- src/dbus/qdbusconnection_p.h | 2 -- src/dbus/qdbusintegrator.cpp | 10 ++-------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/src/dbus/qdbusconnection_p.h b/src/dbus/qdbusconnection_p.h index 3b1853bde0..80bf04571e 100644 --- a/src/dbus/qdbusconnection_p.h +++ b/src/dbus/qdbusconnection_p.h @@ -214,8 +214,6 @@ public: void enableDispatchDelayed(QObject *context); - void _q_newConnection(QDBusConnectionPrivate *newConnection); - private: void checkThread(); bool handleError(const QDBusErrorInternal &error); diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index c8e7159b15..7f30f3be11 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -316,8 +316,8 @@ static void qDBusNewConnection(DBusServer *server, DBusConnection *connection, v newConnection->setDispatchEnabled(false); // this is a queued connection and will resume in the QDBusServer's thread - QMetaObject::invokeMethod(serverConnection, &QDBusConnectionPrivate::_q_newConnection, - Qt::QueuedConnection, newConnection); + QMetaObject::invokeMethod(serverConnection->serverObject, &QDBusServer::newConnection, + Qt::QueuedConnection, QDBusConnectionPrivate::q(newConnection)); // we've disabled dispatching of events, so now we post an event to the // QDBusServer's thread in order to enable it after the @@ -329,12 +329,6 @@ static void qDBusNewConnection(DBusServer *server, DBusConnection *connection, v } // extern "C" -void QDBusConnectionPrivate::_q_newConnection(QDBusConnectionPrivate *newConnection) -{ - Q_ASSERT(mode == ServerMode); - emit serverObject->newConnection(QDBusConnectionPrivate::q(newConnection)); -} - static QByteArray buildMatchRule(const QString &service, const QString &objectPath, const QString &interface, const QString &member, const QDBusConnectionPrivate::ArgMatchRules &argMatch, const QString & /*signature*/)