diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-02-28 13:24:26 +0100 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2022-03-01 10:46:54 +0100 |
commit | 1ef03a1c7043d617885d319b0803d69907c3c9cc (patch) | |
tree | acfcd33dab8e2355863356af88d14ac6e3578b2d /src/buildtool/build_engine/target_map/utils.cpp | |
parent | fffee539ec37e9e68189e71994aa2c901d30c9fb (diff) | |
download | justbuild-1ef03a1c7043d617885d319b0803d69907c3c9cc.tar.gz |
Pass actions and trees in analysis result as shared pointer
... to avoid unnecessary copying and moving of larger objects.
Diffstat (limited to 'src/buildtool/build_engine/target_map/utils.cpp')
-rw-r--r-- | src/buildtool/build_engine/target_map/utils.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
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<std::string> 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<std::string> command, const ExpressionPtr& env, std::optional<std::string> 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<ActionDescription>(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)); } |