mirror of https://github.com/axmolengine/axmol.git
bugfix related to AutoreleasePool's PoolManager
* duplicated AutoreleasePool added to PoolManager in PoolManager::getInstance() * redundant pop_back() in PoolManager::~PoolManager()
This commit is contained in:
parent
dbca937835
commit
1eb991df59
|
@ -111,8 +111,7 @@ PoolManager* PoolManager::getInstance()
|
|||
{
|
||||
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);
|
||||
new AutoreleasePool("cocos2d autorelease pool");
|
||||
}
|
||||
return s_singleInstance;
|
||||
}
|
||||
|
@ -134,7 +133,6 @@ PoolManager::~PoolManager()
|
|||
while (!_releasePoolStack.empty())
|
||||
{
|
||||
AutoreleasePool* pool = _releasePoolStack.back();
|
||||
_releasePoolStack.pop_back();
|
||||
|
||||
delete pool;
|
||||
}
|
||||
|
@ -164,16 +162,9 @@ void PoolManager::push(AutoreleasePool *pool)
|
|||
|
||||
void PoolManager::pop()
|
||||
{
|
||||
// Can not pop the pool that created by engine
|
||||
CC_ASSERT(_releasePoolStack.size() >= 1);
|
||||
|
||||
CC_ASSERT(!_releasePoolStack.empty());
|
||||
_releasePoolStack.pop_back();
|
||||
|
||||
// Should update _curReleasePool if a temple pool is released
|
||||
if (_releasePoolStack.size() > 1)
|
||||
{
|
||||
_curReleasePool = _releasePoolStack.back();
|
||||
}
|
||||
_curReleasePool = _releasePoolStack.empty() ? nullptr : _releasePoolStack.back();
|
||||
}
|
||||
|
||||
NS_CC_END
|
||||
|
|
Loading…
Reference in New Issue