diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2025-02-27 12:57:13 +0100 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2025-02-28 13:44:06 +0100 |
commit | 02bf375f90f16f684cd9b2ac9455001007366f92 (patch) | |
tree | b8e284394aafa9b326359600966ad60adcd57646 /src/buildtool/execution_api/utils/subobject.cpp | |
parent | 2b4e781e2e14653201b81b12e1b332a7462691b7 (diff) | |
download | justbuild-02bf375f90f16f684cd9b2ac9455001007366f92.tar.gz |
Avoid rehashing content when using GitRepo::ReadTreeData
Diffstat (limited to 'src/buildtool/execution_api/utils/subobject.cpp')
-rw-r--r-- | src/buildtool/execution_api/utils/subobject.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/buildtool/execution_api/utils/subobject.cpp b/src/buildtool/execution_api/utils/subobject.cpp index f1b1b459..466c3b73 100644 --- a/src/buildtool/execution_api/utils/subobject.cpp +++ b/src/buildtool/execution_api/utils/subobject.cpp @@ -20,9 +20,9 @@ #include <utility> #include "gsl/gsl" +#include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/bazel_types.hpp" #include "src/buildtool/common/protocol_traits.hpp" -#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" #include "src/buildtool/execution_api/common/tree_reader_utils.hpp" @@ -87,14 +87,11 @@ auto RetrieveSubPathId(Artifact::ObjectInfo object_info, object_info = *new_object_info; } else { - auto const hash = HashFunction{HashFunction::Type::GitSHA1} - .HashTreeData(*data) - .Bytes(); auto entries = GitRepo::ReadTreeData( *data, - hash, + object_info.digest.hash(), [](auto const& /*unused*/) { return true; }, - /*is_hex_id=*/false); + /*is_hex_id=*/true); if (not entries) { Logger::Log(LogLevel::Warning, "Failed to parse tree {} at path '{}'", |