diff options
Diffstat (limited to 'src/buildtool/graph_traverser')
-rw-r--r-- | src/buildtool/graph_traverser/TARGETS | 1 | ||||
-rw-r--r-- | src/buildtool/graph_traverser/graph_traverser.hpp | 11 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/buildtool/graph_traverser/TARGETS b/src/buildtool/graph_traverser/TARGETS index f2f77dd2..c3ed60ec 100644 --- a/src/buildtool/graph_traverser/TARGETS +++ b/src/buildtool/graph_traverser/TARGETS @@ -7,6 +7,7 @@ , ["src/buildtool/common", "common"] , ["src/buildtool/common", "artifact_digest_factory"] , ["src/buildtool/common", "tree"] + , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_engine/dag", "dag"] , ["src/buildtool/execution_engine/executor", "context"] , ["src/buildtool/execution_engine/executor", "executor"] diff --git a/src/buildtool/graph_traverser/graph_traverser.hpp b/src/buildtool/graph_traverser/graph_traverser.hpp index 51a1976d..b62bd08a 100644 --- a/src/buildtool/graph_traverser/graph_traverser.hpp +++ b/src/buildtool/graph_traverser/graph_traverser.hpp @@ -35,6 +35,7 @@ #include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/common/cli.hpp" #include "src/buildtool/common/tree.hpp" +#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" #include "src/buildtool/execution_api/common/common_api.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" @@ -179,10 +180,13 @@ class GraphTraverser { } auto const [blobs, tree_descs, actions] = *desc; + HashFunction::Type const hash_type = + context_.apis->hash_function.GetType(); std::vector<ActionDescription::Ptr> action_descriptions{}; action_descriptions.reserve(actions.size()); for (auto const& [id, description] : actions.items()) { - auto action = ActionDescription::FromJson(id, description); + auto action = + ActionDescription::FromJson(hash_type, id, description); if (not action) { return std::nullopt; // Error already logged } @@ -191,7 +195,7 @@ class GraphTraverser { std::vector<Tree::Ptr> trees{}; for (auto const& [id, description] : tree_descs.items()) { - auto tree = Tree::FromJson(id, description); + auto tree = Tree::FromJson(hash_type, id, description); if (not tree) { return std::nullopt; } @@ -200,7 +204,8 @@ class GraphTraverser { std::map<std::string, ArtifactDescription> artifact_descriptions{}; for (auto const& [rel_path, description] : artifacts.items()) { - auto artifact = ArtifactDescription::FromJson(description); + auto artifact = + ArtifactDescription::FromJson(hash_type, description); if (not artifact) { return std::nullopt; // Error already logged } |