From e86f223eba2baab63ed28ce9de5136515d22480a Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Mon, 12 Feb 2024 00:33:32 +0200 Subject: [PATCH] QFileInfo: checkAttribute should take lambdas by value So that they are moved. Pick-to: 6.6 6.5 Change-Id: I3d1767944200962be90d3eb8695c92a766c4c744 Reviewed-by: Thiago Macieira (cherry picked from commit 08cb919aa5b4fcd950e9f3a6e41c00c01f0632ab) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/io/qfileinfo.cpp | 3 ++- src/corelib/io/qfileinfo_p.h | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index d5ee5f3eef7..57b58493e37 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -1685,7 +1685,8 @@ QDateTime QFileInfo::fileTime(QFile::FileTime time, const QTimeZone &tz) const auto fsLambda = [d, time]() { return d->metaData.fileTime(time); }; auto engineLambda = [d, time]() { return d->getFileTime(time); }; - const QDateTime dt = d->checkAttribute(flag, fsLambda, engineLambda); + const auto dt = + d->checkAttribute(flag, std::move(fsLambda), std::move(engineLambda)); return dt.toTimeZone(tz); } diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index b28dc9d5de1..b61cbf88948 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -146,8 +146,8 @@ public: { if (cache_enabled) cachedFlags |= c; } template - Ret checkAttribute(Ret defaultValue, QFileSystemMetaData::MetaDataFlags fsFlags, const FSLambda &fsLambda, - const EngineLambda &engineLambda) const + Ret checkAttribute(Ret defaultValue, QFileSystemMetaData::MetaDataFlags fsFlags, + FSLambda fsLambda, EngineLambda engineLambda) const { if (isDefaultConstructed) return defaultValue; @@ -161,10 +161,10 @@ public: } template - Ret checkAttribute(QFileSystemMetaData::MetaDataFlags fsFlags, const FSLambda &fsLambda, - const EngineLambda &engineLambda) const + Ret checkAttribute(QFileSystemMetaData::MetaDataFlags fsFlags, FSLambda fsLambda, + EngineLambda engineLambda) const { - return checkAttribute(Ret(), fsFlags, fsLambda, engineLambda); + return checkAttribute(Ret(), std::move(fsFlags), std::move(fsLambda), engineLambda); } };