From e5fce05360b4ef5fd8b035ad3e57fe3f83409185 Mon Sep 17 00:00:00 2001 From: zzyyyl <74587068+zzyyyl@users.noreply.github.com> Date: Wed, 4 May 2022 14:19:03 +0800 Subject: [PATCH] =?UTF-8?q?fix.=E5=9C=A8=E5=9B=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=AF=BC=E8=87=B4=E7=9A=84=E6=8C=87=E9=92=88?= =?UTF-8?q?=E5=A4=B1=E6=95=88=E6=97=B6=E5=90=91=E6=97=A5=E5=BF=97=E8=BE=93?= =?UTF-8?q?=E5=87=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/MeoAssistant/ProcessTask.cpp | 9 +++++++-- src/MeoAssistant/ProcessTaskImageAnalyzer.cpp | 5 +++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/MeoAssistant/ProcessTask.cpp b/src/MeoAssistant/ProcessTask.cpp index be44692bd8..905e337e7d 100644 --- a/src/MeoAssistant/ProcessTask.cpp +++ b/src/MeoAssistant/ProcessTask.cpp @@ -87,9 +87,14 @@ bool ProcessTask::_run() Rect rect; std::shared_ptr cur_task_ptr = nullptr; + auto front_task_ptr = Task.get(m_cur_tasks_name.front()); + // 可能有配置错误,导致不存在对应的任务 + if (front_task_ptr == nullptr) { + Log.error("Invalid task", m_cur_tasks_name.front()); + return false; + } // 如果第一个任务是JustReturn的,那就没必要再截图并计算了 - if (auto front_task_ptr = Task.get(m_cur_tasks_name.front()); - front_task_ptr->algorithm == AlgorithmType::JustReturn) { + if (front_task_ptr->algorithm == AlgorithmType::JustReturn) { cur_task_ptr = front_task_ptr; } else { diff --git a/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp b/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp index 4230644a7a..2a008f105c 100644 --- a/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp +++ b/src/MeoAssistant/ProcessTaskImageAnalyzer.cpp @@ -98,6 +98,11 @@ bool asst::ProcessTaskImageAnalyzer::analyze() for (const std::string& task_name : m_tasks_name) { auto task_ptr = Task.get(task_name); + // 可能有配置错误,导致不存在对应的任务 + if (task_ptr == nullptr) { + Log.error("Invalid task", task_name); + continue; + } switch (task_ptr->algorithm) { case AlgorithmType::JustReturn: