summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-03-18 15:19:28 (GMT)
committerBrad King <brad.king@kitware.com>2023-03-18 15:52:41 (GMT)
commitf79817fcf0168c377ea4cb7187830a8caf373168 (patch)
tree0531bff85b3fd916cd692b62143ccfedc9b5a27f
parent5ab002ea11921c4766912cfa7ca98756271f87dc (diff)
downloadCMake-f79817fcf0168c377ea4cb7187830a8caf373168.zip
CMake-f79817fcf0168c377ea4cb7187830a8caf373168.tar.gz
CMake-f79817fcf0168c377ea4cb7187830a8caf373168.tar.bz2
cmCxxModuleMapper: Use value semantics in path conversion callback
The call site already owns a path it doesn't need when the callback returns. Hand ownership to the callback so it can optionally mutate the path without necessarily allocating.
-rw-r--r--Source/cmCxxModuleMapper.cxx2
-rw-r--r--Source/cmCxxModuleMapper.h2
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx2
3 files changed, 3 insertions, 3 deletions
diff --git a/Source/cmCxxModuleMapper.cxx b/Source/cmCxxModuleMapper.cxx
index 2c57c05..59bf4c7 100644
--- a/Source/cmCxxModuleMapper.cxx
+++ b/Source/cmCxxModuleMapper.cxx
@@ -21,7 +21,7 @@ cm::optional<std::string> CxxModuleLocations::BmiGeneratorPathForModule(
std::string const& logical_name) const
{
if (auto l = this->BmiLocationForModule(logical_name)) {
- return this->PathForGenerator(*l);
+ return this->PathForGenerator(std::move(*l));
}
return {};
}
diff --git a/Source/cmCxxModuleMapper.h b/Source/cmCxxModuleMapper.h
index 9271978..0f453b0 100644
--- a/Source/cmCxxModuleMapper.h
+++ b/Source/cmCxxModuleMapper.h
@@ -30,7 +30,7 @@ struct CxxModuleLocations
std::string RootDirectory;
// A function to convert a full path to a path for the generator.
- std::function<std::string(std::string const&)> PathForGenerator;
+ std::function<std::string(std::string)> PathForGenerator;
// Lookup the BMI location of a logical module name.
std::function<cm::optional<std::string>(std::string const&)>
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 9db92c0..e739038 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -2629,7 +2629,7 @@ bool cmGlobalNinjaGenerator::WriteDyndepFile(
{
CxxModuleLocations locs;
locs.RootDirectory = ".";
- locs.PathForGenerator = [this](std::string const& path) -> std::string {
+ locs.PathForGenerator = [this](std::string path) -> std::string {
return this->ConvertToNinjaPath(path);
};
locs.BmiLocationForModule =