summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/local/local_action.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-05-24 11:01:03 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-05-27 16:36:58 +0200
commit1c6acd97737f4d49b5e0d1dbb97e3c1d75d0e145 (patch)
tree135a90a6085d3e7205349c2f39759db5701f388b /src/buildtool/execution_api/local/local_action.cpp
parent20afd06b78c614299dc05e2044fc8ffe5dfa5977 (diff)
downloadjustbuild-1c6acd97737f4d49b5e0d1dbb97e3c1d75d0e145.tar.gz
Use common interface for reading tree entries and leafs
...in LocalApi and BazelApi.
Diffstat (limited to 'src/buildtool/execution_api/local/local_action.cpp')
-rw-r--r--src/buildtool/execution_api/local/local_action.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp
index 52b513f0..cb3e3563 100644
--- a/src/buildtool/execution_api/local/local_action.cpp
+++ b/src/buildtool/execution_api/local/local_action.cpp
@@ -21,7 +21,9 @@
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/compatibility/native_support.hpp"
+#include "src/buildtool/execution_api/common/tree_reader.hpp"
#include "src/buildtool/execution_api/local/config.hpp"
+#include "src/buildtool/execution_api/local/local_cas_reader.hpp"
#include "src/buildtool/execution_api/local/local_response.hpp"
#include "src/buildtool/execution_api/utils/outputscheck.hpp"
#include "src/buildtool/file_system/file_system_manager.hpp"
@@ -216,14 +218,14 @@ auto LocalAction::StageInputs(
if (FileSystemManager::IsRelativePath(exec_path)) {
return false;
}
-
- auto infos = storage_->CAS().RecursivelyReadTreeLeafs(
+ auto reader = TreeReader<LocalCasReader>{storage_->CAS()};
+ auto result = reader.RecursivelyReadTreeLeafs(
root_digest_, exec_path, /*include_trees=*/true);
- if (not infos) {
+ if (not result) {
return false;
}
- for (std::size_t i{}; i < infos->first.size(); ++i) {
- if (not StageInput(infos->first.at(i), infos->second.at(i))) {
+ for (std::size_t i{}; i < result->paths.size(); ++i) {
+ if (not StageInput(result->paths.at(i), result->infos.at(i))) {
return false;
}
}