1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-18 17:31:57 +08:00

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.
This commit is contained in:
Brad King
2023-03-18 11:19:28 -04:00
parent 5ab002ea11
commit f79817fcf0
3 changed files with 3 additions and 3 deletions

View File

@@ -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 {};
}

View File

@@ -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&)>

View File

@@ -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 =