From 4cecbc2873cd4ce464a8bf3b3c529830fcd29d0d Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Tue, 3 Sep 2024 13:20:22 +0200 Subject: Use ArtifactDigestFactory casts in readers --- src/buildtool/execution_api/local/local_cas_reader.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/buildtool/execution_api/local/local_cas_reader.cpp') diff --git a/src/buildtool/execution_api/local/local_cas_reader.cpp b/src/buildtool/execution_api/local/local_cas_reader.cpp index 3e5ebe7b..2da3bc00 100644 --- a/src/buildtool/execution_api/local/local_cas_reader.cpp +++ b/src/buildtool/execution_api/local/local_cas_reader.cpp @@ -23,6 +23,7 @@ #include #include "gsl/gsl" +#include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" @@ -52,6 +53,7 @@ auto LocalCasReader::ReadDirectory(ArtifactDigest const& digest) const noexcept auto LocalCasReader::MakeTree(ArtifactDigest const& root) const noexcept -> std::optional { + auto const hash_type = cas_.GetHashFunction().GetType(); try { std::unordered_map directories; @@ -70,7 +72,12 @@ auto LocalCasReader::MakeTree(ArtifactDigest const& root) const noexcept return std::nullopt; } for (auto const& node : read_dir->directories()) { - to_check.push(ArtifactDigest{node.digest()}); + auto digest = + ArtifactDigestFactory::FromBazel(hash_type, node.digest()); + if (not digest) { + return std::nullopt; + } + to_check.push(*std::move(digest)); } directories.insert_or_assign(std::move(current), *std::move(read_dir)); -- cgit v1.2.3