Cocos2dx3.17.2 Node::onExit()报错BUG

环境:win10/cocos3.17.2/lua/vs2015 使用了physics物理引擎

最终表现为:


Node still marked as running on node destruction! Was base class onExit() called in derived class onExit() implementations?

调用堆栈:

即为正常使用removeFromParent()时,偶尔出现的报错。
已知报错原因:


调用Node::removeChild函数,取地址为0x1d837fb0的child的下标时,本应取值32,结果却取到了31并把下标为31的child删除了。这就可能造成后续一连串未知的错误,目前只遇到了上述错误。

不知是不是bug,麻烦官方给个回复。

问题已解决。
删错child的原因是,在detachChild的过程中,因为某些未知原因调用了sortNode,导致_children子节点顺序发生了变化,按理说应该在removeChild之前就sortNode的。
解决方法:将detachChild最后的 _children.erase(childIndex); 改为_children.eraseObject(child);