From d50fd6acfa967a5afa6bc7aa7e1f61d15dedde6d Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Fri, 11 Aug 2023 15:24:01 +0300 Subject: [PATCH] tst_qdbusconnection: iterate over member container directly The loops don't change the m_connections container. The call chain is: - registerObjectPeer() unittest constructs a MyServer, which connects QDBusServer::newConnection to MyServer::handleConnection(), the latter stores each new connection's name in m_connections - An QTestEventLoop is entered, which triggers handleConnection(), handleConnection() calls exitLoop() at the bottom (this is repeated multiple times) - server.unregisterObject() is called, iterating over m_connections - server.registerObject() is called iterating over m_connections - between the unregisterObject() call and the registerObject() calls m_connections is not modified AFAICS Thus no need for taking a copy of m_connections (not that it matters much, it's a QStringList with size() == 3). Change-Id: Idaea2ca4d3b27fc88d39f8434e3817a2a4098c72 Reviewed-by: Marc Mutz Reviewed-by: Thiago Macieira --- tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h index 02412066a8..72198b75f3 100644 --- a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h +++ b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h @@ -164,8 +164,7 @@ public: bool registerObject() { - const auto copy = m_connections; // needed? Loop doesn't modify, but handleConnection() does - for (const QString &name : copy) { + for (const QString &name : std::as_const(m_connections)) { if (!registerObject(QDBusConnection(name))) return false; } @@ -174,8 +173,7 @@ public: void unregisterObject() { - const auto copy = m_connections; // needed? Loop doesn't modify, but handleConnection() does - for (const QString &name : copy) { + for (const QString &name : std::as_const(m_connections)) { QDBusConnection c(name); c.unregisterObject(m_path); }