RenderState中的析构函数造成内存泄漏,已修复请查收

我有两个模型 模型create的时候 下面这函数的CC_SAFE_RETAIN执行了7次 析构的时候只release执行了三次。
导致TextureCache中的texture无法释放。 rc每次都增加

void Mesh::setTexture(Texture2D* tex, NTextureData::Usage usage, bool cacheFileName)
{
// Texture must be saved for future use
// it doesn’t matter if the material is already set or not
// This functionality is added for compatibility issues
if (tex == nullptr)
tex = getDummyTexture();

CC_SAFE_RETAIN(tex);
CC_SAFE_RELEASE(_textures[usage]);

在查为什么引用计数增加了好多 不同的模型计数不一样

找到问题了 目前引擎存在泄漏 3.10的 最新版的3.13也有这个问题好像

RenderState::~RenderState()
{
CC_SAFE_RELEASE(_texture);
CC_SAFE_RELEASE(_state);
}
析构函数中没有_texture的释放 新加了就好了

这里的retain没有release
void RenderState::setTexture(Texture2D* texture)
{
if (_texture != texture)
{
CC_SAFE_RELEASE(_texture);
_texture = texture;
CC_SAFE_RETAIN(_texture);
}
}

最新代码已经有在RenderState::~RenderState释放纹理了,谢谢。

11 客气了 应该的