summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_engine/executor/executor.hpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-09-10 11:04:06 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-09-11 14:52:07 +0200
commitaa703d0325f229df9e8eeb3a8c0ef8ddca8bce5b (patch)
tree9962bd305be4b180dc874589d14fa66e95b2e746 /src/buildtool/execution_engine/executor/executor.hpp
parent888b226cc4e84b72eff2b9c8f2b29453977d14c6 (diff)
downloadjustbuild-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.hpp14
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;
}