Cocos2dx InputProcessor类中的handleRollOver方法bug

InputProcessor类中的handleRollOver方法中
...while (element != nullptr)
{
_rollOutChain.push_back(element);
element = element->getParent();
}
上面代码中有吧element添加到_rollOutChain中,但是下面接着
if (touch->lastRollOver)
        CC_SAFE_RELEASE(touch->lastRollOver);
当element = touch->lastRollOver的时候,由于下面把touch->lastRollOver释放掉了,导致_rollOutChain中的element指针变成野指针,后面遍历调用element就会崩溃
这个地方需要优化,我这边现在改成do while循环防止野指针生成,不知大神有什么建议
 
已邀请:

谷主

赞同来自: guranaie

嗯,是的,那其实把131-135行移到handleRollOver方法的最后就行了,我改改。

要回复问题请先登录注册