报一个内存泄露的bug:CCLabel

版本号:2.0.5
CCLabel的ttfTexture的释放写在onDestroy里面,onDestroy方法调用的前提是IsOnLoadCalled


ttfTexture创建的方法并不一定是需要有onLoad

这就导致ttfTexture会泄漏
重现方法
用FairyGUI创建一个界面,放置一个隐藏的label,打开然后关闭即可发现ttfTexture没有被回收掉

1赞

感谢反馈,我们验证下!

确认红色区域代码已经执行?2.0.9 没有复现该问题,请升级下版本!

在CCLabelOutline设置width的时候就会去update渲染数据,此时就会生成ttf纹理并上传。纹理的生成和销毁并不会成对调用到。如果生成一个Label加Outline给它设置width,然后马上丢弃掉。那么生成的纹理不会有机会得到释放。

能提供给个demo吗?

稍等。

LabelLeak.zip (470.8 KB)

LabelLeak.zip (472.0 KB)

已验证,你先自己避免这类逻辑,我反馈下修复!

感谢反馈,修复方式: https://github.com/cocos-creator/engine/pull/4220

请问2.0.8有没有修复这个问题