diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-09-10 11:04:06 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-09-11 14:52:07 +0200 |
commit | aa703d0325f229df9e8eeb3a8c0ef8ddca8bce5b (patch) | |
tree | 9962bd305be4b180dc874589d14fa66e95b2e746 /src/buildtool/execution_engine/executor/executor.hpp | |
parent | 888b226cc4e84b72eff2b9c8f2b29453977d14c6 (diff) | |
download | justbuild-aa703d0325f229df9e8eeb3a8c0ef8ddca8bce5b.tar.gz |
Use ArtifactDigestFactory in executor
...to create ArtifactDigests.
Diffstat (limited to 'src/buildtool/execution_engine/executor/executor.hpp')
-rw-r--r-- | src/buildtool/execution_engine/executor/executor.hpp | 14 |
1 files changed, 11 insertions, 3 deletions
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<ArtifactDigest, gsl::not_null<GitTreeEntryPtr>> 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; } |