From aa703d0325f229df9e8eeb3a8c0ef8ddca8bce5b Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Tue, 10 Sep 2024 11:04:06 +0200 Subject: Use ArtifactDigestFactory in executor ...to create ArtifactDigests. --- src/buildtool/execution_engine/executor/executor.hpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/buildtool/execution_engine/executor/executor.hpp') diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp index 0cf54eec..556e47c0 100644 --- a/src/buildtool/execution_engine/executor/executor.hpp +++ b/src/buildtool/execution_engine/executor/executor.hpp @@ -273,11 +273,19 @@ class ExecutorImpl { std::unordered_map> entry_map; for (auto const& [path, entry] : tree) { + // Since GitTrees are processed here, HashFunction::Type::GitSHA1 is + // used auto digest = - ArtifactDigest{entry->Hash(), *entry->Size(), entry->IsTree()}; - digests.emplace_back(digest); + ArtifactDigestFactory::Create(HashFunction::Type::GitSHA1, + entry->Hash(), + *entry->Size(), + entry->IsTree()); + if (not digest) { + return false; + } + digests.emplace_back(*digest); try { - entry_map.emplace(std::move(digest), entry); + entry_map.emplace(*std::move(digest), entry); } catch (...) { return false; } -- cgit v1.2.3