一个隐蔽的c++丢失lua函数引用的bug

版本2.2.5

很低的概率随机发生C++丢失注册的lua回调函数的问题。

经过一阵折腾,发现Bug在于:

CCArmature的构造函数中,没有对m_nScriptMovementHandler赋初值。这样,在调用connectMovementEventSignal()时,先进入disconnectMovementEventSignal(),导致一个随机值的lua函数被清除。大部分情况下不发生任何事情,但是如果正好这个随机值取值0~1000范围之内,就有可能错误清除了一个有效的lua函数。

这个 bug 真隐蔽,非常感谢!

高手高手高高手

2.2.3也没有初始化,很有用

赞!3.0已经没有这个问题了