diff options
Diffstat (limited to 'src/buildtool/main/analyse.cpp')
-rw-r--r-- | src/buildtool/main/analyse.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/buildtool/main/analyse.cpp b/src/buildtool/main/analyse.cpp index 025fb1a9..dcb2181b 100644 --- a/src/buildtool/main/analyse.cpp +++ b/src/buildtool/main/analyse.cpp @@ -23,6 +23,7 @@ #include <memory> #include <thread> #include <unordered_map> +#include <utility> #include <vector> #include "fmt/core.h" @@ -121,7 +122,6 @@ namespace Target = BuildMaps::Target; [[nodiscard]] auto AnalyseTarget( gsl::not_null<AnalyseContext*> const& context, const Target::ConfiguredTarget& id, - gsl::not_null<Target::ResultTargetMap*> const& result_map, std::size_t jobs, std::optional<std::string> const& request_action_input, Logger const* logger, @@ -147,8 +147,9 @@ namespace Target = BuildMaps::Target; auto absent_target_variables_map = Target::CreateAbsentTargetVariablesMap(context, jobs); + BuildMaps::Target::ResultTargetMap result_map{jobs}; auto absent_target_map = Target::CreateAbsentTargetMap( - context, result_map, &absent_target_variables_map, jobs, serve_log); + context, &result_map, &absent_target_variables_map, jobs, serve_log); auto target_map = Target::CreateTargetMap(context, &source_targets, @@ -156,7 +157,7 @@ namespace Target = BuildMaps::Target; &rule_map, &directory_entries, &absent_target_map, - result_map, + &result_map, jobs); Logger::Log( logger, LogLevel::Info, "Requested target is {}", id.ToString()); @@ -240,7 +241,7 @@ namespace Target = BuildMaps::Target; if (request_action_input) { if (request_action_input->starts_with("%")) { auto action_id = request_action_input->substr(1); - auto action = result_map->GetAction(action_id); + auto action = result_map.GetAction(action_id); if (action) { Logger::Log(logger, LogLevel::Info, @@ -278,7 +279,7 @@ namespace Target = BuildMaps::Target; } } else { - auto action = result_map->GetAction(*request_action_input); + auto action = result_map.GetAction(*request_action_input); if (action) { Logger::Log(logger, LogLevel::Info, @@ -309,5 +310,8 @@ namespace Target = BuildMaps::Target; } } } - return AnalysisResult{.id = id, .target = target, .modified = modified}; + return AnalysisResult{.id = id, + .target = target, + .result_map = std::move(result_map), + .modified = modified}; } |