修复清空场景上的监听器时指针越界问题
This commit is contained in:
parent
9fc1483b19
commit
552ef7a10e
|
|
@ -216,14 +216,18 @@ void KeyMsg::clearAllSceneListeners(Scene * scene)
|
||||||
// 创建迭代器
|
// 创建迭代器
|
||||||
std::vector<KeyMsg*>::iterator iter;
|
std::vector<KeyMsg*>::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)
|
if ((*iter)->m_pParentScene == scene)
|
||||||
{
|
{
|
||||||
// 删除该定时器
|
// 删除该定时器
|
||||||
delete (*iter);
|
delete (*iter);
|
||||||
s_vListeners.erase(iter);
|
iter = s_vListeners.erase(iter);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -166,14 +166,18 @@ void MouseMsg::clearAllSceneListeners(Scene * scene)
|
||||||
// 创建迭代器
|
// 创建迭代器
|
||||||
std::vector<MouseMsg*>::iterator iter;
|
std::vector<MouseMsg*>::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)
|
if ((*iter)->m_pParentScene == scene)
|
||||||
{
|
{
|
||||||
// 删除该定时器
|
// 删除该定时器
|
||||||
delete (*iter);
|
delete (*iter);
|
||||||
s_vListeners.erase(iter);
|
iter = s_vListeners.erase(iter);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iter++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue