summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp5
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_api.cpp5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index fb64f6a1..02fa4fa6 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -133,6 +133,11 @@ class LocalApi final : public IExecutionApi {
std::vector<Artifact::ObjectInfo> const& artifacts_info,
gsl::not_null<IExecutionApi*> const& api) noexcept -> bool final {
+ // Return immediately if target CAS is this CAS
+ if (this == api) {
+ return true;
+ }
+
// Determine missing artifacts in other CAS.
std::vector<ArtifactDigest> digests;
digests.reserve(artifacts_info.size());
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
index f1442111..a192737f 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp
@@ -169,6 +169,11 @@ auto BazelApi::CreateAction(
std::vector<Artifact::ObjectInfo> const& artifacts_info,
gsl::not_null<IExecutionApi*> const& api) noexcept -> bool {
+ // Return immediately if target CAS is this CAS
+ if (this == api) {
+ return true;
+ }
+
// Determine missing artifacts in other CAS.
std::vector<ArtifactDigest> digests;
digests.reserve(artifacts_info.size());