summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote/bazel
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-05-27 16:16:26 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-05-28 16:19:19 +0200
commitc0b46b2f4e47fc017beeae34ff555418d198e1d4 (patch)
tree6a4319a1b974fd6113fab80dd1047c1a8cb7be18 /src/buildtool/execution_api/remote/bazel
parentfd8ad0f561dd253bf7399ce9a4594242e918ca25 (diff)
downloadjustbuild-c0b46b2f4e47fc017beeae34ff555418d198e1d4.tar.gz
Use shared_ptr for data in ContentBlob
...to reduce the "price" of copying.
Diffstat (limited to 'src/buildtool/execution_api/remote/bazel')
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp6
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp4
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_network.cpp2
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp8
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_response.cpp4
5 files changed, 12 insertions, 12 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index e56228eb..00f7308c 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -275,7 +275,7 @@ auto BazelApi::CreateAction(
auto const& type = artifacts_info[gpos].type;
if (not FileSystemManager::WriteFileAs</*kSetEpochTime=*/true,
/*kSetWritable=*/true>(
- blobs[pos].data, output_paths[gpos], type)) {
+ *blobs[pos].data, output_paths[gpos], type)) {
Logger::Log(LogLevel::Warning,
"staging to output path {} failed.",
output_paths[gpos].string());
@@ -432,7 +432,7 @@ auto BazelApi::CreateAction(
-> std::optional<std::string> {
auto blobs = network_->ReadBlobs({artifact_info.digest}).Next();
if (blobs.size() == 1) {
- return blobs.at(0).data;
+ return *blobs.at(0).data;
}
return std::nullopt;
}
@@ -465,7 +465,7 @@ auto BazelApi::CreateAction(
targets->reserve(digests.size());
while (not blobs.empty()) {
for (auto const& blob : blobs) {
- targets->emplace_back(blob.data);
+ targets->emplace_back(*blob.data);
}
blobs = reader.Next();
}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp
index 5feabb57..e5976ead 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp
@@ -320,7 +320,7 @@ auto BazelCasClient::UpdateSingleBlob(std::string const& instance_name,
uuid,
blob.digest.hash(),
blob.digest.size_bytes()),
- blob.data);
+ *blob.data);
if (!ok) {
logger_.Emit(LogLevel::Error,
"Failed to write {}:{}",
@@ -654,7 +654,7 @@ auto BazelCasClient::CreateUpdateBlobsSingleRequest(BazelBlob const& b) noexcept
bazel_re::BatchUpdateBlobsRequest_Request r{};
r.set_allocated_digest(
gsl::owner<bazel_re::Digest*>{new bazel_re::Digest{b.digest}});
- r.set_data(b.data);
+ r.set_data(*b.data);
return r;
}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp
index a537dcdc..85bb53d9 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp
@@ -84,7 +84,7 @@ auto BazelNetwork::DoUploadBlobs(T_Iter const& first,
auto it = std::stable_partition(
sorted.begin(), sorted.end(), [](BazelBlob const* x) {
- return x->data.size() <= kMaxBatchTransferSize;
+ return x->data->size() <= kMaxBatchTransferSize;
});
auto digests_count =
cas_->BatchUpdateBlobs(instance_name_, sorted.begin(), it);
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp
index 90790ef4..9c5b4b4b 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_network_reader.cpp
@@ -48,7 +48,7 @@ auto BazelNetworkReader::ReadDirectory(ArtifactDigest const& digest)
auto blobs = network_.ReadBlobs({digest}).Next();
if (blobs.size() == 1) {
return BazelMsgFactory::MessageFromString<bazel_re::Directory>(
- blobs.at(0).data);
+ *blobs.at(0).data);
}
Logger::Log(
LogLevel::Debug, "Directory {} not found in CAS", digest.hash());
@@ -59,7 +59,7 @@ auto BazelNetworkReader::ReadGitTree(ArtifactDigest const& digest)
const noexcept -> std::optional<GitRepo::tree_entries_t> {
auto blobs = network_.ReadBlobs({digest}).Next();
if (blobs.size() == 1) {
- auto const& content = blobs.at(0).data;
+ auto const& content = *blobs.at(0).data;
auto check_symlinks = [this](std::vector<bazel_re::Digest> const& ids) {
auto size = ids.size();
auto reader = network_.ReadBlobs(ids);
@@ -72,7 +72,7 @@ auto BazelNetworkReader::ReadGitTree(ArtifactDigest const& digest)
return false;
}
for (auto const& blob : blobs) {
- if (not PathIsNonUpwards(blob.data)) {
+ if (not PathIsNonUpwards(*blob.data)) {
return false;
}
}
@@ -102,7 +102,7 @@ auto BazelNetworkReader::DumpRawTree(Artifact::ObjectInfo const& info,
}
try {
- return std::invoke(dumper, blobs.at(0).data);
+ return std::invoke(dumper, *blobs.at(0).data);
} catch (...) {
return false;
}
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
index 9db3bb94..39196bf9 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp
@@ -44,7 +44,7 @@ auto BazelResponse::ReadStringBlob(bazel_re::Digest const& id) noexcept
id.hash());
return std::string{};
}
- return blobs[0].data;
+ return *blobs[0].data;
}
auto BazelResponse::Artifacts() noexcept -> ArtifactInfos {
@@ -181,7 +181,7 @@ auto BazelResponse::Populate() noexcept -> bool {
for (auto const& tree_blob : tree_blobs) {
try {
auto tree = BazelMsgFactory::MessageFromString<bazel_re::Tree>(
- tree_blob.data);
+ *tree_blob.data);
if (not tree) {
return false;
}