CCLabelTTF::updateTexture() leak


#1

My cocos2dx version is cocos2d-2.1beta3-x-2.1.0
I use instruments to debug leak.The leak result info is below:

Bytes Used # Leaks Symbol Name
3.53 KB 100.0 15 start
3.53 KB 100.0 15 main
3.53 KB 100.0 15 UIApplicationMain
3.53 KB 100.0 15 GSEventRunModal
3.53 KB 100.0 15 CFRunLoopRunInMode
3.53 KB 100.0 15 CFRunLoopRunSpecific
3.53 KB 100.0 15 __CFRunLoopRun
3.53 KB 100.0 15 _CFRunLoopDoSource1
3.53 KB 100.0 15 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__
3.44 KB 97.3 14 PurpleEventCallback
3.44 KB 97.3 14 _PurpleEventCallback
3.44 KB 97.3 14
UIApplicationHandleEvent
3.44 KB 97.3 14 -[UIApplication sendEvent:]
3.44 KB 97.3 14 ~~
3.44 KB 97.3 14 -[EAGLView touchesEnded:withEvent:]
3.44 KB 97.3 14 cocos2d::CCEGLViewProtocol::handleTouchesEnd
3.44 KB 97.3 14 cocos2d::CCTouchDispatcher::touches(cocos2d::CCSet*, cocos2d::CCEvent*, unsigned int)
3.44 KB 97.3 14 cocos2d::extension::CCControl::sendActionsForControlEvents
3.44 KB 97.3 14 SceneController::change(int, int, float)
3.44 KB 97.3 14 cocos2d::extension::CCBReader::createSceneWithNodeGraphFromFile
3.44 KB 97.3 14 cocos2d::extension::CCBReader::readNodeGraphFromFile(char const*, cocos2d::CCObject*, cocos2d::CCSize const&)
3.44 KB 97.3 14 cocos2d::extension::CCBReader::readNodeGraphFromData
3.44 KB 97.3 14 cocos2d::extension::CCBReader::readFileWithCleanUp(bool, cocos2d::CCDictionary*)
3.44 KB 97.3 14 cocos2d::extension::CCBReader::readNodeGraph
3.44 KB 97.3 14 cocos2d::extension::CCBReader::readNodeGraph(cocos2d::CCNode*)
3.14 KB 88.9 9 cocos2d::CCLabelTTF::create
3.00 KB 84.9 3 operator new(unsigned long)
144 Bytes 3.9 6 cocos2d::CCLabelTTF::init
304 Bytes 8.4 5 cocos2d::extension::CCNodeLoader::parseProperties(cocos2d::CCNode*, cocos2d::CCNode*, cocos2d::extension::CCBReader*)
304 Bytes 8.4 5 cocos2d::CCLabelTTF::setString
96 Bytes 2.6 1 __CFMachPortPerform
96 Bytes 2.6 1 IODispatchCalloutFromCFMessage
96 Bytes 2.6 1 IOMobileFramebufferVsyncNotifyFunc
96 Bytes 2.6 1 CA::Display::IOMFBDisplayLink::callback
96 Bytes 2.6 1 CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long)
96 Bytes 2.6 1~~[CCDirectorCaller doCaller:]
96 Bytes 2.6 1 cocos2d::CCDisplayLinkDirector::mainLoop()
96 Bytes 2.6 1 cocos2d::CCDirector::drawScene()
96 Bytes 2.6 1 cocos2d::CCDirector::setNextScene()
96 Bytes 2.6 1 cocos2d::CCTransitionFade::onEnter()
96 Bytes 2.6 1 cocos2d::CCNode::onEnter()
96 Bytes 2.6 1 SelectDifficultyLayer::onEnter()
96 Bytes 2.6 1 cocos2d::CCLabelTTF::setString(char const*)
96 Bytes 2.6 1 cocos2d::CCLabelTTF::updateTexture()
96 Bytes 2.6% 1 operator new(unsigned long)

How can I fix it ?
Thanks.

Regards.


#2

I find the leak issue is below:

bool LogoLayer::onAssignCCBMemberVariable(CCObject * pTarget, const char * pMemberVariableName, CCNode * pNode)
{
CCB_MEMBERVARIABLEASSIGNER_GLUE(this, “_debugTest”, CCLabelTTF *, this~~>_debugTest);
return false;
}

If I comment CCB_MEMBERVARIABLEASSIGNER_GLUE;
or add debugTest~~>release() at LogoLayer::onExit()
it dosen’t show leak, I think because retain the CCLabelTTF,
but why the other object(CCSprite or CCControlButton…) don’t show leak.