cocos2dx3.1.1程序退出时提示内存泄露

版本cocos2d-x-3.1.1,vs2012编译DEBUG版本,cpp-empty-test工程(也就是HelloWorld工程)退出时,发现Configuration和PoolManager中有new操作而没有相应的delete操作。

跟踪后发现,程序退出时,Director::purgeDirector()中调用Configuration::destroyInstance();进行删除(这时候将s_sharedConfiguration删除置空),之后再调用Renderer::~Renderer(),里面再次调用了单例Configuration::getInstance()->supportsShareableVAO(),单例Configuration::getInstance()里因为s_sharedConfiguration已经被删除置空了,所以再重新创建new一次Configuration,并init(里面有new操作),但是之后就没有对应的delete操作了。

Configuration* Configuration::getInstance()
{
if (! s_sharedConfiguration) //这里置空之后
{
s_sharedConfiguration = new Configuration(); //并重新创建了
s_sharedConfiguration->init(); //里面有new操作
}

return s_sharedConfiguration;

}

3.PoolManager同上理。

4.不影响引擎的正常运行以及操作,只是看起来不爽;妈妈告诉我说,new之后记得delete;retain之后记得release;

全局指针的调用顺序

:2: :2: mark,刚碰到了

还有 SceneReader::destroyInstance();
:14::12: