fixed memory leaks caused by pool allocator, thanks Dev0
This commit is contained in:
@@ -41,9 +41,6 @@ btCollisionDispatcher::btCollisionDispatcher (btCollisionConfiguration* collisio
|
|||||||
|
|
||||||
setNearCallback(defaultNearCallback);
|
setNearCallback(defaultNearCallback);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int maxElements = 16384;
|
|
||||||
m_collisionAlgorithmPoolAllocator = new btPoolAllocator(m_collisionConfiguration->getCollisionAlgorithmMaxElementSize(),m_collisionConfiguration->getCollisionAlgorithmPoolSize());
|
m_collisionAlgorithmPoolAllocator = new btPoolAllocator(m_collisionConfiguration->getCollisionAlgorithmMaxElementSize(),m_collisionConfiguration->getCollisionAlgorithmPoolSize());
|
||||||
|
|
||||||
m_persistentManifoldPoolAllocator = new btPoolAllocator(sizeof(btPersistentManifold),m_collisionConfiguration->getPersistentManifoldPoolSize());
|
m_persistentManifoldPoolAllocator = new btPoolAllocator(sizeof(btPersistentManifold),m_collisionConfiguration->getPersistentManifoldPoolSize());
|
||||||
@@ -68,7 +65,8 @@ void btCollisionDispatcher::registerCollisionCreateFunc(int proxyType0, int prox
|
|||||||
|
|
||||||
btCollisionDispatcher::~btCollisionDispatcher()
|
btCollisionDispatcher::~btCollisionDispatcher()
|
||||||
{
|
{
|
||||||
|
delete m_collisionAlgorithmPoolAllocator;
|
||||||
|
delete m_persistentManifoldPoolAllocator;
|
||||||
}
|
}
|
||||||
|
|
||||||
btPersistentManifold* btCollisionDispatcher::getNewManifold(void* b0,void* b1)
|
btPersistentManifold* btCollisionDispatcher::getNewManifold(void* b0,void* b1)
|
||||||
|
|||||||
@@ -45,6 +45,11 @@ public:
|
|||||||
*(void**)p = 0;
|
*(void**)p = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
~btPoolAllocator()
|
||||||
|
{
|
||||||
|
delete m_pool;
|
||||||
|
}
|
||||||
|
|
||||||
void* allocate(int size)
|
void* allocate(int size)
|
||||||
{
|
{
|
||||||
btAssert(!size || size<=m_elemSize);
|
btAssert(!size || size<=m_elemSize);
|
||||||
|
|||||||
Reference in New Issue
Block a user