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/execution_engine/dag/dag.cpp | 10 ++++++++++ src/buildtool/execution_engine/dag/dag.hpp | 3 +++ 2 files changed, 13 insertions(+) (limited to 'src/buildtool/execution_engine') 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 const& actions) return true; } +auto DependencyGraph::Add(std::vector 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 const& actions) -> bool; + [[nodiscard]] auto Add(std::vector const& actions) + -> bool; + [[nodiscard]] auto AddAction(ActionDescription const& description) -> bool; [[nodiscard]] auto AddArtifact(ArtifactDescription const& description) -- cgit v1.2.3