From 9812df02dbf463a820c881ef61e58d5fdece190c Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Fri, 11 Aug 2023 02:52:54 +0300 Subject: [PATCH] tst_QDir: port Q_FOREACH with QList::removeIf filterLinks() is always called on a temporary QStringList, so make it take by && (which proves it's always called on a temporary), and modify the parameter directly. Task-number: QTBUG-115839 Change-Id: I40611f40cc0096a58d5c9d8e68c5df06d43152e5 Reviewed-by: Volker Hilsheimer --- tests/auto/corelib/io/qdir/tst_qdir.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp index ff3db649349..dab8f53b4f9 100644 --- a/tests/auto/corelib/io/qdir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp @@ -717,18 +717,13 @@ void tst_QDir::compare() QVERIFY(QDir("../") == QDir(QDir::currentPath() + "/..")); } -static QStringList filterLinks(const QStringList &list) +static QStringList filterLinks(QStringList &&list) { -#ifndef Q_NO_SYMLINKS - return list; -#else - QStringList result; - foreach (QString str, list) { - if (!str.endsWith(QLatin1String(".lnk"))) - result.append(str); - } - return result; +#ifdef Q_NO_SYMLINKS + auto isDotLnk = [](const auto &s) { return s.endsWith(".lnk"_L1); }; + list.removeIf(isDotLnk); #endif + return std::move(list); } void tst_QDir::entryList_data()