From 8bad80bcdde3f2142cada647c7f2cd17dfa53ab2 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Thu, 30 May 2024 19:35:58 +0800 Subject: [PATCH] Avoid redundant lookup PR #20890. --- src/gui/properties/peerlistwidget.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index 02f0cc609..87acbc666 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -411,7 +411,7 @@ void PeerListWidget::loadPeers(const BitTorrent::Torrent *torrent) return; // Remove I2P peers since they will be completely reloaded. - for (QStandardItem *item : asConst(m_I2PPeerItems)) + for (const QStandardItem *item : asConst(m_I2PPeerItems)) m_listModel->removeRow(item->row()); m_I2PPeerItems.clear(); @@ -466,10 +466,14 @@ void PeerListWidget::loadPeers(const BitTorrent::Torrent *torrent) { QStandardItem *item = m_peerItems.take(peerEndpoint); - QSet &items = m_itemsByIP[peerEndpoint.address.ip]; - items.remove(item); - if (items.isEmpty()) - m_itemsByIP.remove(peerEndpoint.address.ip); + const auto items = m_itemsByIP.find(peerEndpoint.address.ip); + Q_ASSERT(items != m_itemsByIP.end()); + if (items == m_itemsByIP.end()) [[unlikely]] + continue; + + items->remove(item); + if (items->isEmpty()) + m_itemsByIP.erase(items); m_listModel->removeRow(item->row()); }