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 <thiago.macieira@intel.com>
(cherry picked from commit 08cb919aa5b4fcd950e9f3a6e41c00c01f0632ab)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Ahmad Samir 2024-02-12 00:33:32 +02:00 committed by Qt Cherry-pick Bot
parent 22d1a437cb
commit e86f223eba
2 changed files with 7 additions and 6 deletions

View File

@ -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<QDateTime>(flag, fsLambda, engineLambda);
const auto dt =
d->checkAttribute<QDateTime>(flag, std::move(fsLambda), std::move(engineLambda));
return dt.toTimeZone(tz);
}

View File

@ -146,8 +146,8 @@ public:
{ if (cache_enabled) cachedFlags |= c; }
template <typename Ret, typename FSLambda, typename EngineLambda>
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 <typename Ret, typename FSLambda, typename EngineLambda>
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);
}
};