1
mirror of https://github.com/qbittorrent/qBittorrent synced 2024-07-12 18:10:50 +02:00

Switch to efficient algorithm

This commit is contained in:
Chocobo1 2023-07-22 02:07:06 +08:00
parent c58aa58cba
commit d6adebe4c0
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
3 changed files with 7 additions and 11 deletions

View File

@ -31,7 +31,6 @@
#include <algorithm>
#include <memory>
#include <type_traits>
#include <libtorrent/address.hpp>
#include <libtorrent/alert_types.hpp>
@ -551,8 +550,7 @@ QVector<TrackerEntry> TorrentImpl::trackers() const
void TorrentImpl::addTrackers(QVector<TrackerEntry> trackers)
{
// TODO: use std::erase_if() in C++20
trackers.erase(std::remove_if(trackers.begin(), trackers.end(), [](const TrackerEntry &entry) { return entry.url.isEmpty(); }), trackers.end());
trackers.removeIf([](const TrackerEntry &entry) { return entry.url.isEmpty(); });
const auto newTrackers = QSet<TrackerEntry>(trackers.cbegin(), trackers.cend())
- QSet<TrackerEntry>(m_trackerEntries.cbegin(), m_trackerEntries.cend());
@ -596,8 +594,7 @@ void TorrentImpl::removeTrackers(const QStringList &trackers)
void TorrentImpl::replaceTrackers(QVector<TrackerEntry> trackers)
{
// TODO: use std::erase_if() in C++20
trackers.erase(std::remove_if(trackers.begin(), trackers.end(), [](const TrackerEntry &entry) { return entry.url.isEmpty(); }), trackers.end());
trackers.removeIf([](const TrackerEntry &entry) { return entry.url.isEmpty(); });
std::sort(trackers.begin(), trackers.end()
, [](const TrackerEntry &lhs, const TrackerEntry &rhs) { return lhs.tier < rhs.tier; });

View File

@ -42,7 +42,6 @@
#include <QSslError>
#include <QUrl>
#include "base/algorithm.h"
#include "base/global.h"
#include "base/logger.h"
#include "base/preferences.h"
@ -63,7 +62,7 @@ public:
{
const QDateTime now = QDateTime::currentDateTime();
QList<QNetworkCookie> cookies = Preferences::instance()->getNetworkCookies();
Algorithm::removeIf(cookies, [&now](const QNetworkCookie &cookie)
cookies.removeIf([&now](const QNetworkCookie &cookie)
{
return cookie.isSessionCookie() || (cookie.expirationDate() <= now);
});
@ -75,7 +74,7 @@ public:
{
const QDateTime now = QDateTime::currentDateTime();
QList<QNetworkCookie> cookies = allCookies();
Algorithm::removeIf(cookies, [&now](const QNetworkCookie &cookie)
cookies.removeIf([&now](const QNetworkCookie &cookie)
{
return cookie.isSessionCookie() || (cookie.expirationDate() <= now);
});
@ -90,7 +89,7 @@ public:
{
const QDateTime now = QDateTime::currentDateTime();
QList<QNetworkCookie> cookies = QNetworkCookieJar::cookiesForUrl(url);
Algorithm::removeIf(cookies, [&now](const QNetworkCookie &cookie)
cookies.removeIf([&now](const QNetworkCookie &cookie)
{
return !cookie.isSessionCookie() && (cookie.expirationDate() <= now);
});
@ -102,7 +101,7 @@ public:
{
const QDateTime now = QDateTime::currentDateTime();
QList<QNetworkCookie> cookies = cookieList;
Algorithm::removeIf(cookies, [&now](const QNetworkCookie &cookie)
cookies.removeIf([&now](const QNetworkCookie &cookie)
{
return !cookie.isSessionCookie() && (cookie.expirationDate() <= now);
});

View File

@ -702,7 +702,7 @@ QVector<Utils::Net::Subnet> Preferences::getWebUiAuthSubnetWhitelist() const
void Preferences::setWebUiAuthSubnetWhitelist(QStringList subnets)
{
Algorithm::removeIf(subnets, [](const QString &subnet)
subnets.removeIf([](const QString &subnet)
{
return !Utils::Net::parseSubnet(subnet.trimmed()).has_value();
});