From 624b9834b034ea66cb919ecb59a49933ccd73389 Mon Sep 17 00:00:00 2001 From: Horror Proton <107091537+horror-proton@users.noreply.github.com> Date: Sun, 9 Jun 2024 11:01:20 +0800 Subject: [PATCH] fix: fix endless loop in InfrastProductionTask fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/8941 --- src/MaaCore/Task/Infrast/InfrastProductionTask.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp index 191993adea..4cd8ed3d1f 100644 --- a/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp +++ b/src/MaaCore/Task/Infrast/InfrastProductionTask.cpp @@ -511,11 +511,14 @@ bool asst::InfrastProductionTask::optimal_calc() name_analyzer.set_replace(Task.get("CharsNameOcrReplace")->replace_map, Task.get("CharsNameOcrReplace")->replace_full); Log.trace("Analyze name filter"); - if (!name_analyzer.analyze()) { - continue; + if (name_analyzer.analyze()) { + std::string name = name_analyzer.get_result().text; + hash_matched = + ranges::find(opt.name_filter, name) != opt.name_filter.cend(); + } + else { + hash_matched = false; } - std::string name = name_analyzer.get_result().text; - hash_matched = ranges::find(opt.name_filter, name) != opt.name_filter.cend(); } if (!hash_matched) { ++find_iter;