From 552ef7a10e73e821b808ed6fddbf95eb3e7b6ca7 Mon Sep 17 00:00:00 2001 From: Nomango <569629550@qq.com> Date: Sun, 8 Oct 2017 23:07:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B8=85=E7=A9=BA=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E4=B8=8A=E7=9A=84=E7=9B=91=E5=90=AC=E5=99=A8=E6=97=B6?= =?UTF-8?q?=E6=8C=87=E9=92=88=E8=B6=8A=E7=95=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Easy2D/Msg/KeyMsg.cpp | 8 ++++++-- Easy2D/Msg/MouseMsg.cpp | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Easy2D/Msg/KeyMsg.cpp b/Easy2D/Msg/KeyMsg.cpp index f21b55e1..f123ff20 100644 --- a/Easy2D/Msg/KeyMsg.cpp +++ b/Easy2D/Msg/KeyMsg.cpp @@ -216,14 +216,18 @@ void KeyMsg::clearAllSceneListeners(Scene * scene) // 创建迭代器 std::vector::iterator iter; // 循环遍历所有监听器 - for (iter = s_vListeners.begin(); iter != s_vListeners.end(); iter++) + for (iter = s_vListeners.begin(); iter != s_vListeners.end();) { // 查找相同名称的监听器 if ((*iter)->m_pParentScene == scene) { // 删除该定时器 delete (*iter); - s_vListeners.erase(iter); + iter = s_vListeners.erase(iter); + } + else + { + iter++; } } } diff --git a/Easy2D/Msg/MouseMsg.cpp b/Easy2D/Msg/MouseMsg.cpp index 58caf147..5594b7be 100644 --- a/Easy2D/Msg/MouseMsg.cpp +++ b/Easy2D/Msg/MouseMsg.cpp @@ -166,14 +166,18 @@ void MouseMsg::clearAllSceneListeners(Scene * scene) // 创建迭代器 std::vector::iterator iter; // 循环遍历所有监听器 - for (iter = s_vListeners.begin(); iter != s_vListeners.end(); iter++) + for (iter = s_vListeners.begin(); iter != s_vListeners.end();) { // 查找相同名称的监听器 if ((*iter)->m_pParentScene == scene) { // 删除该定时器 delete (*iter); - s_vListeners.erase(iter); + iter = s_vListeners.erase(iter); + } + else + { + iter++; } } }