不知道是不是我考虑千周到,我好像发现一个bug在CCAutoreleasePool.cpp中
PoolManager* PoolManager::getInstance()
{
if (s_singleInstance == nullptr)
{
s_singleInstance = new PoolManager();
// Add the first auto release pool
s_singleInstance->_curReleasePool = new AutoreleasePool("cocos2d autorelease pool");
//s_singleInstance->_releasePoolStack.push_back(s_singleInstance->_curReleasePool);//添加了第2遍
}
return s_singleInstance;
}
PoolManager::~PoolManager()
{
CCLOGINFO("deallocing PoolManager: %p", this);
while (!_releasePoolStack.empty())
{
AutoreleasePool* pool = _releasePoolStack.back();
//_releasePoolStack.pop_back();删除了2次
delete pool;
}
}
如果正常跑起来是没有错误的,但是如果我在自己代码中创建了一个AutoreleasePool* a = new AutoreleasePool("a");后就会报错,
怎么不能用自定义的对象呢,结果发现代码中的问题,我把2段代码注释了后就能在代码中任意添加AutoreleasePool对象。