diff --git a/src/base/bittorrent/sessionimpl.cpp b/src/base/bittorrent/sessionimpl.cpp index 1d65baa67..18c0c1b30 100644 --- a/src/base/bittorrent/sessionimpl.cpp +++ b/src/base/bittorrent/sessionimpl.cpp @@ -5923,12 +5923,15 @@ TorrentImpl *SessionImpl::getTorrent(const lt::torrent_handle &nativeHandle) con QList SessionImpl::getQueuedTorrentsByID(const QList &torrentIDs) const { - auto torrents = torrentIDs - | std::views::transform([this](const TorrentID &torrentID) { return m_torrents.value(torrentID); }) - | std::views::filter([](const TorrentImpl *torrent) { return torrent && (torrent->queuePosition() >= 0); }); - - QList queuedTorrents = {torrents.begin(), torrents.end()}; - std::ranges::sort(queuedTorrents, std::less<>(), &TorrentImpl::queuePosition); + QList queuedTorrents; + queuedTorrents.reserve(torrentIDs.size()); + for (const TorrentID &torrentID : torrentIDs) + { + TorrentImpl *torrent = m_torrents.value(torrentID); + if (torrent && (torrent->queuePosition() >= 0)) + queuedTorrents.push_back(torrent); + } + std::ranges::sort(queuedTorrents, std::less(), &TorrentImpl::queuePosition); return queuedTorrents; }