From 1ef03a1c7043d617885d319b0803d69907c3c9cc Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Mon, 28 Feb 2022 13:24:26 +0100 Subject: Pass actions and trees in analysis result as shared pointer ... to avoid unnecessary copying and moving of larger objects. --- src/buildtool/build_engine/target_map/utils.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/buildtool/build_engine/target_map/utils.cpp') diff --git a/src/buildtool/build_engine/target_map/utils.cpp b/src/buildtool/build_engine/target_map/utils.cpp index 8c5353ce..e84634da 100644 --- a/src/buildtool/build_engine/target_map/utils.cpp +++ b/src/buildtool/build_engine/target_map/utils.cpp @@ -152,13 +152,13 @@ auto hash_vector(std::vector const& vec) -> std::string { } // namespace auto BuildMaps::Target::Utils::createAction( - ActionDescription::outputs_t output_files, - ActionDescription::outputs_t output_dirs, + const ActionDescription::outputs_t& output_files, + const ActionDescription::outputs_t& output_dirs, std::vector command, const ExpressionPtr& env, std::optional may_fail, bool no_cache, - const ExpressionPtr& inputs_exp) -> ActionDescription { + const ExpressionPtr& inputs_exp) -> ActionDescription::Ptr { auto hasher = HashGenerator{BuildMaps::Target::Utils::kActionHash} .IncrementalHasher(); hasher.Update(hash_vector(output_files)); @@ -186,12 +186,12 @@ auto BuildMaps::Target::Utils::createAction( for (auto const& [input_path, artifact] : inputs_exp->Map()) { inputs.emplace(input_path, artifact->Artifact()); } - return ActionDescription{std::move(output_files), - std::move(output_dirs), - Action{std::move(action_id), - std::move(command), - std::move(env_vars), - std::move(may_fail), - no_cache}, - std::move(inputs)}; + return std::make_shared(output_files, + output_dirs, + Action{std::move(action_id), + std::move(command), + std::move(env_vars), + std::move(may_fail), + no_cache}, + std::move(inputs)); } -- cgit v1.2.3