From 867b2f89ad37b39059334377cdf3b02587cc6ec6 Mon Sep 17 00:00:00 2001 From: Maksim Denisov Date: Thu, 13 Feb 2025 12:05:06 +0100 Subject: BazelCasClient: Support request creation failure in InitRequest. --- src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src') 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 3cd9d4a8..ed9a00a5 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp @@ -62,15 +62,20 @@ template TIterator { std::size_t content_size = 0; for (auto it = begin; it != end; ++it) { - auto to_merge = std::invoke(request_creator, *it); - if (request->ByteSizeLong() + to_merge.ByteSizeLong() > message_limit) { + std::optional to_merge = std::invoke(request_creator, *it); + if (not to_merge.has_value()) { + return it; + } + + if (request->ByteSizeLong() + to_merge->ByteSizeLong() > + message_limit) { return it; } if (content_limit.has_value() and content_size + GetContentSize(*it) > *content_limit) { return it; } - request->MergeFrom(to_merge); + request->MergeFrom(*std::move(to_merge)); content_size += GetContentSize(*it); } return end; -- cgit v1.2.3