cocos2d-x 3.3final update中移除自身崩溃的bug

lua在update里移除自身会崩溃。
需要在c++里CCNode的update开始处加上retain,在结束处加上release才能保证对象不会马上被移除,处理完update中所有事情再被移除。
这种类似的bug在ccs中出现过,后来官方修复了,但是不知道为啥ccNode没修复,希望官方能对这类代码都再做一次检测和修复。

请提供一段测试的例子用于重现。感谢~

这个我也遇到过 就是在自己的帧事件里移除自己

怪不得之前用quick的player运行到这里就崩溃

    local sprite = cc.Sprite:create("grossini.png")
    self:addChild(sprite)
    sprite:addNodeEventListener(cc.NODE_ENTER_FRAME_EVENT, function ()
        sprite:removeFromParent()
    end)
    sprite:scheduleUpdate()


```


 

嗯。明白你的意思了。

这边主要是因为_compentContainer的问题,导致lua脚本执行完对象被释放掉crash的。可以直接使用scheduler:scheduleScriptFunc而不使用scheduleUpdateWithPriorityLua。

这种类似的bug在ccs中出现过,后来官方修复了========>这个能提供相关的资料或者链接?

https://github.com/cocos2d/cocos2d-x/blob/v3/cocos/ui/UIWidget.cpp
这个是之前ccs修复,可以看下修改log