From 7b223810024872ac9229897a16a2cc3e678a856b Mon Sep 17 00:00:00 2001 From: donghualin Date: Tue, 20 Dec 2022 13:19:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A0=8F=E5=BC=95=E8=B5=B7AM=E5=B4=A9?= =?UTF-8?q?=E6=BA=83=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将迭代器检查修改为列表检查‘ ’ Log: Influence: 重启任务栏,观察AM服务是否会崩溃 Task: https://pms.uniontech.com/task-view-226125.html Change-Id: I1e53235c9df552fc345170ce19134c90362d0cf7 --- src/modules/dock/entry.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/modules/dock/entry.cpp b/src/modules/dock/entry.cpp index 833f36f..bdc2272 100644 --- a/src/modules/dock/entry.cpp +++ b/src/modules/dock/entry.cpp @@ -614,8 +614,9 @@ void Entry::newInstance(uint32_t timestamp) // 检查应用窗口分离、合并状态 void Entry::check() { - for (auto iter = m_windowInfoMap.begin(); iter != m_windowInfoMap.end(); iter++) { - m_dock->attachOrDetachWindow(iter.value()); + QList windows = m_windowInfoMap.values(); + for (WindowInfoBase *window : windows) { + m_dock->attachOrDetachWindow(window); } } @@ -623,12 +624,13 @@ void Entry::check() void Entry::forceQuit() { QMap> pidWinInfoMap; - for (auto iter = m_windowInfoMap.begin(); iter != m_windowInfoMap.end(); iter++) { - int pid = iter.value()->getPid(); + QList windows = m_windowInfoMap.values(); + for (WindowInfoBase *window : windows) { + int pid = window->getPid(); if (pid != 0) { - pidWinInfoMap[pid].push_back(iter.value()); + pidWinInfoMap[pid].push_back(window); } else { - iter.value()->killClient(); + window->killClient(); } } @@ -648,11 +650,7 @@ void Entry::forceQuit() void Entry::presentWindows() { - QList windows; - for (auto iter = m_windowInfoMap.begin(); iter != m_windowInfoMap.end(); iter++) { - windows.push_back(iter.key()); - } - + QList windows = m_windowInfoMap.keys(); m_dock->presentWindows(windows); }