summaryrefslogtreecommitdiff
path: root/src/buildtool/build_engine/target_map/utils.cpp
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2022-02-28 13:24:26 +0100
committerKlaus Aehlig <klaus.aehlig@huawei.com>2022-03-01 10:46:54 +0100
commit1ef03a1c7043d617885d319b0803d69907c3c9cc (patch)
treeacfcd33dab8e2355863356af88d14ac6e3578b2d /src/buildtool/build_engine/target_map/utils.cpp
parentfffee539ec37e9e68189e71994aa2c901d30c9fb (diff)
downloadjustbuild-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.cpp22
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));
}