summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_engine
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/execution_engine
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/execution_engine')
-rw-r--r--src/buildtool/execution_engine/dag/dag.cpp10
-rw-r--r--src/buildtool/execution_engine/dag/dag.hpp3
2 files changed, 13 insertions, 0 deletions
diff --git a/src/buildtool/execution_engine/dag/dag.cpp b/src/buildtool/execution_engine/dag/dag.cpp
index 96a74650..5d60dd01 100644
--- a/src/buildtool/execution_engine/dag/dag.cpp
+++ b/src/buildtool/execution_engine/dag/dag.cpp
@@ -104,6 +104,16 @@ auto DependencyGraph::Add(std::vector<ActionDescription> const& actions)
return true;
}
+auto DependencyGraph::Add(std::vector<ActionDescription::Ptr> const& actions)
+ -> bool {
+ for (auto const& action : actions) {
+ if (not AddAction(*action)) {
+ return false;
+ }
+ }
+ return true;
+}
+
auto DependencyGraph::AddArtifact(ArtifactDescription const& description)
-> ArtifactIdentifier {
auto artifact = description.ToArtifact();
diff --git a/src/buildtool/execution_engine/dag/dag.hpp b/src/buildtool/execution_engine/dag/dag.hpp
index 4f29d79a..ff055413 100644
--- a/src/buildtool/execution_engine/dag/dag.hpp
+++ b/src/buildtool/execution_engine/dag/dag.hpp
@@ -524,6 +524,9 @@ class DependencyGraph : DirectedAcyclicGraph {
[[nodiscard]] auto Add(std::vector<ActionDescription> const& actions)
-> bool;
+ [[nodiscard]] auto Add(std::vector<ActionDescription::Ptr> const& actions)
+ -> bool;
+
[[nodiscard]] auto AddAction(ActionDescription const& description) -> bool;
[[nodiscard]] auto AddArtifact(ArtifactDescription const& description)