summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2025-02-04 18:26:39 +0100
committerMaksim Denisov <denisov.maksim@huawei.com>2025-02-07 14:58:04 +0100
commit0a8dbe086a23bbb905514007d21e2e04cdaae1e8 (patch)
tree06136cea09fa30d857cc4f23f15ea372dfe5ef47 /src/buildtool/execution_api/remote/bazel/bazel_api.cpp
parent3bc0b895258ba8aeb04ee48525036a0a9407c9cb (diff)
downloadjustbuild-0a8dbe086a23bbb905514007d21e2e04cdaae1e8.tar.gz
IExecutionApi: Use unordered_set in IsAvailable
Diffstat (limited to 'src/buildtool/execution_api/remote/bazel/bazel_api.cpp')
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp27
1 files changed, 12 insertions, 15 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index ed5247e5..66f81d01 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -117,14 +117,15 @@ namespace {
}
// Fetch unknown chunks.
- auto digest_set = std::unordered_set<ArtifactDigest>{chunk_digests->begin(),
- chunk_digests->end()};
- auto unique_digests =
- std::vector<ArtifactDigest>{digest_set.begin(), digest_set.end()};
-
- auto missing_artifact_digests = other_api.IsAvailable(unique_digests);
- if (not ::RetrieveToCas(
- missing_artifact_digests, other_api, network, info_map)) {
+ auto missing_artifact_digests = other_api.IsAvailable(
+ std::unordered_set(chunk_digests->begin(), chunk_digests->end()));
+
+ std::vector<ArtifactDigest> missing_digests;
+ missing_digests.reserve(missing_artifact_digests.size());
+ std::move(missing_artifact_digests.begin(),
+ missing_artifact_digests.end(),
+ std::back_inserter(missing_digests));
+ if (not ::RetrieveToCas(missing_digests, other_api, network, info_map)) {
return false;
}
@@ -570,8 +571,8 @@ auto BazelApi::CreateAction(
}
[[nodiscard]] auto BazelApi::IsAvailable(
- std::vector<ArtifactDigest> const& digests) const noexcept
- -> std::vector<ArtifactDigest> {
+ std::unordered_set<ArtifactDigest> const& digests) const noexcept
+ -> std::unordered_set<ArtifactDigest> {
auto const back_map = BackMap<bazel_re::Digest, ArtifactDigest>::Make(
&digests, ArtifactDigestFactory::ToBazel);
if (not back_map.has_value()) {
@@ -579,11 +580,7 @@ auto BazelApi::CreateAction(
}
auto const bazel_result = network_->IsAvailable(back_map->GetKeys());
- auto missing = back_map->GetValues(bazel_result);
- std::vector<ArtifactDigest> result;
- result.reserve(missing.size());
- std::move(missing.begin(), missing.end(), std::back_inserter(result));
- return result;
+ return back_map->GetValues(bazel_result);
}
[[nodiscard]] auto BazelApi::SplitBlob(ArtifactDigest const& blob_digest)