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 <marc.mutz@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Ahmad Samir 2023-08-11 15:24:01 +03:00
parent a6274fa39a
commit d50fd6acfa

View File

@ -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);
}