diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-05-24 11:01:03 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-05-27 16:36:58 +0200 |
commit | 1c6acd97737f4d49b5e0d1dbb97e3c1d75d0e145 (patch) | |
tree | 135a90a6085d3e7205349c2f39759db5701f388b /src/buildtool/execution_api/local/local_action.cpp | |
parent | 20afd06b78c614299dc05e2044fc8ffe5dfa5977 (diff) | |
download | justbuild-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.cpp | 12 |
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; } } |