diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-12-02 12:34:01 +0100 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-12-03 14:11:38 +0100 |
commit | ca028c50d0c1c2babf73ddaf757aa7d016f0e9d6 (patch) | |
tree | 44047e0a58f650e2a9ba3e8a8572f5df0a1a55b7 | |
parent | 39989ef91b4a0531baf9592c7621f06a2ec14fe9 (diff) | |
download | justbuild-ca028c50d0c1c2babf73ddaf757aa7d016f0e9d6.tar.gz |
JustMR: process overlay repositories during traverse
...and remove the second for-loop.
-rw-r--r-- | src/other_tools/just_mr/setup_utils.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/src/other_tools/just_mr/setup_utils.cpp b/src/other_tools/just_mr/setup_utils.cpp index 3398e817..e69c3656 100644 --- a/src/other_tools/just_mr/setup_utils.cpp +++ b/src/other_tools/just_mr/setup_utils.cpp @@ -67,7 +67,8 @@ void ReachableRepositories( std::string const& main, std::shared_ptr<JustMR::SetupRepos> const& setup_repos) { // use temporary sets to avoid duplicates - std::unordered_set<std::string> include_repos_set{}; + std::unordered_set<std::string> include_repos_set; + std::unordered_set<std::string> setup_repos_set; // computed must not contain overlay repos, so they are collected separately std::unordered_set<std::string> computed_repos_set{}; @@ -110,23 +111,17 @@ void ReachableRepositories( } } } - } - // Add overlay repositories - std::unordered_set<std::string> setup_repos_set{include_repos_set}; - for (auto const& repo : include_repos_set) { - auto repos_repo = repos->Get(repo, Expression::none_t{}); - if (repos_repo.IsNotNull()) { - // copy over any present alternative root dirs - for (auto const& layer : kAltDirs) { - auto layer_val = repos_repo->Get(layer, Expression::none_t{}); - if (layer_val.IsNotNull() and layer_val->IsString()) { - auto repo_name = layer_val->String(); - setup_repos_set.insert(repo_name); - } + for (auto const& layer : kAltDirs) { + auto const layer_val = + repos_repo_name->Get(layer, Expression::none_t{}); + if (layer_val.IsNotNull() and layer_val->IsString()) { + auto const layer_repo_name = layer_val->String(); + setup_repos_set.insert(layer_repo_name); } } } + setup_repos_set.insert(include_repos_set.begin(), include_repos_set.end()); setup_repos_set.insert(computed_repos_set.begin(), computed_repos_set.end()); |