cocosbuilder内存泄露,reader代码中存在互相引用导致内存无法释放


#1

CCNode * CCBReader::readNodeGraph(CCNode * pParent) 中有这样的代码

// Set root node
if (! mActionManager~~>getRootNode)
{
mActionManager~~>setRootNode(node);
}
其中 mActionManager~~>setRootNode;

CCNode* CCBReader::readNodeGraphFromData中有这样的代码
CCNode* pNode = pElement~~>getIntKey();
CCBAnimationManager* manager = (CCBAnimationManager*)animationManagers-

>objectForKey((intptr_t)pNode);
pNode~~>setUserObject;
其中 pNode~~>setUserObject(manager)

注意:
mActionManager~~>setRootNode;

pNode~~>setUserObject(manager)

node与pNode地址相同
mActionManager与manager地址相同
也就是说二者互相引用了。

结果导致二者都无法释放

以上是根据自带例子TestsCpp调试结果。虽然通过其他加载方式避开了这个问题,还请确认下是否存在这个问题


#2

怎么避免这个问题啊,求解