From 503c0b5697bdc81cff5648bcd366aabc5596cad2 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Fri, 13 Sep 2024 10:57:48 +0200 Subject: Avoid unnecessary creation of temporary object --- src/buildtool/build_engine/base_maps/user_rule.hpp | 2 +- .../build_engine/expression/evaluator.cpp | 2 +- .../build_engine/target_map/built_in_rules.cpp | 3 +-- .../build_engine/target_map/target_map.cpp | 24 ++++++++++------------ 4 files changed, 14 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/buildtool/build_engine/base_maps/user_rule.hpp b/src/buildtool/build_engine/base_maps/user_rule.hpp index 8ea0d6cc..c8f5dc06 100644 --- a/src/buildtool/build_engine/base_maps/user_rule.hpp +++ b/src/buildtool/build_engine/base_maps/user_rule.hpp @@ -169,7 +169,7 @@ class UserRule { std::vector target_exps; target_exps.reserve(target_entity_vec.size()); for (auto const& target_entity : target_entity_vec) { - target_exps.emplace_back(ExpressionPtr{target_entity}); + target_exps.emplace_back(target_entity); } implicit_target_exp.emplace(target_name, target_exps); } diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp index 66eb8cfe..18fe7a76 100644 --- a/src/buildtool/build_engine/expression/evaluator.cpp +++ b/src/buildtool/build_engine/expression/evaluator.cpp @@ -319,7 +319,7 @@ auto Range(ExpressionPtr const& expr) -> ExpressionPtr { auto result = Expression::list_t{}; result.reserve(len); for (std::size_t i = 0; i < len; i++) { - result.emplace_back(ExpressionPtr{fmt::format("{}", i)}); + result.emplace_back(fmt::format("{}", i)); } return ExpressionPtr{result}; } diff --git a/src/buildtool/build_engine/target_map/built_in_rules.cpp b/src/buildtool/build_engine/target_map/built_in_rules.cpp index b7b457b5..9ff82faf 100644 --- a/src/buildtool/build_engine/target_map/built_in_rules.cpp +++ b/src/buildtool/build_engine/target_map/built_in_rules.cpp @@ -947,8 +947,7 @@ void InstallRule( } dependency_keys.emplace_back( BuildMaps::Target::ConfiguredTarget{*dep_target, key.config}); - dirs.emplace_back(std::pair{ - *dep_target, entry->List()[1]->String()}); + dirs.emplace_back(*dep_target, entry->List()[1]->String()); } (*subcaller)( diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index 0412f65c..2b9ba3cd 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -209,9 +209,9 @@ struct TargetData { Expression::list_t targets{}; targets.reserve(nodes.size()); for (auto const& node_expr : nodes) { - targets.emplace_back(ExpressionPtr{BuildMaps::Base::EntityName{ + targets.emplace_back(BuildMaps::Base::EntityName{ BuildMaps::Base::AnonymousTarget{ - .rule_map = rule_map, .target_node = node_expr}}}); + .rule_map = rule_map, .target_node = node_expr}}); } target_exprs.emplace(field_name, targets); } @@ -1238,7 +1238,7 @@ void withRuleDefinition( if (not target) { return; } - dep_target_exps.emplace_back(ExpressionPtr{*target}); + dep_target_exps.emplace_back(*target); } } else { @@ -1796,20 +1796,18 @@ void GlobTargetWithDirEntry( std::vector matches; for (auto const& x : dir.FilesIterator()) { if (fnmatch(pattern.c_str(), x.c_str(), 0) == 0) { - matches.emplace_back(BuildMaps::Base::EntityName{ - target.repository, - target.module, - x, - BuildMaps::Base::ReferenceType::kFile}); + matches.emplace_back(target.repository, + target.module, + x, + BuildMaps::Base::ReferenceType::kFile); } } for (auto const& x : dir.SymlinksIterator()) { if (fnmatch(pattern.c_str(), x.c_str(), 0) == 0) { - matches.emplace_back(BuildMaps::Base::EntityName{ - target.repository, - target.module, - x, - BuildMaps::Base::ReferenceType::kSymlink}); + matches.emplace_back(target.repository, + target.module, + x, + BuildMaps::Base::ReferenceType::kSymlink); } } source_target_map->ConsumeAfterKeysReady( -- cgit v1.2.3