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循环防止野指针生成,不知大神有什么建议
...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循环防止野指针生成,不知大神有什么建议
没有找到相关结果
已邀请:
1 个回复
谷主
赞同来自: guranaie