diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-07-08 15:07:24 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-07-22 17:01:13 +0200 |
commit | 4368bf026fa7d18d2c01ac18cdb3e9ff6a228221 (patch) | |
tree | 52336ed3ea0ad5211a421c08a5c8f4414d98f44c /src | |
parent | a57bcd17abee9c9f60653f27d26a46b99f46df8b (diff) | |
download | justbuild-4368bf026fa7d18d2c01ac18cdb3e9ff6a228221.tar.gz |
Use a fixed HashFunction for reading trees
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/execution_api/common/tree_reader_utils.cpp | 13 | ||||
-rw-r--r-- | src/buildtool/execution_api/local/local_cas_reader.cpp | 5 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/buildtool/execution_api/common/tree_reader_utils.cpp b/src/buildtool/execution_api/common/tree_reader_utils.cpp index 874d1884..acd24108 100644 --- a/src/buildtool/execution_api/common/tree_reader_utils.cpp +++ b/src/buildtool/execution_api/common/tree_reader_utils.cpp @@ -40,11 +40,13 @@ namespace { : ObjectType::File}; } -[[nodiscard]] auto CreateObjectInfo(bazel_re::SymlinkNode const& node) +[[nodiscard]] auto CreateObjectInfo(bazel_re::SymlinkNode const& node, + HashFunction hash_function) -> Artifact::ObjectInfo { + return Artifact::ObjectInfo{ - .digest = ArtifactDigest::Create<ObjectType::File>( - HashFunction::Instance(), node.target()), + .digest = ArtifactDigest::Create<ObjectType::File>(hash_function, + node.target()), .type = ObjectType::Symlink}; } @@ -87,8 +89,11 @@ auto TreeReaderUtils::ReadObjectInfos(bazel_re::Directory const& dir, return false; } } + + // SHA256 is used since bazel types are processed here. + HashFunction const hash_function{HashFunction::JustHash::Compatible}; for (auto const& l : dir.symlinks()) { - if (not store_info(l.name(), CreateObjectInfo(l))) { + if (not store_info(l.name(), CreateObjectInfo(l, hash_function))) { return false; } } diff --git a/src/buildtool/execution_api/local/local_cas_reader.cpp b/src/buildtool/execution_api/local/local_cas_reader.cpp index 504b4c74..397c02ad 100644 --- a/src/buildtool/execution_api/local/local_cas_reader.cpp +++ b/src/buildtool/execution_api/local/local_cas_reader.cpp @@ -58,9 +58,12 @@ auto LocalCasReader::ReadGitTree(ArtifactDigest const& digest) const noexcept } return true; }; + + // Git-SHA1 hashing is used for reading from git. + HashFunction const hash_function{HashFunction::JustHash::Native}; return GitRepo::ReadTreeData( *content, - HashFunction::Instance().ComputeTreeHash(*content).Bytes(), + hash_function.ComputeTreeHash(*content).Bytes(), check_symlinks, /*is_hex_id=*/false); } |