more memory leak fixes in demo and btSimpleBroadphase.

- deleting object (END key) needs to release
- call destructor of pair cache
This commit is contained in:
ejcoumans
2007-10-31 08:17:48 +00:00
parent a101719687
commit a146bbc293
3 changed files with 11 additions and 1 deletions

View File

@@ -417,7 +417,16 @@ void DemoApplication::specialKeyboard(int key, int x, int y)
if (numObj)
{
btCollisionObject* obj = getDynamicsWorld()->getCollisionObjectArray()[numObj-1];
getDynamicsWorld()->removeCollisionObject(obj);
btRigidBody* body = btRigidBody::upcast(obj);
if (body && body->getMotionState())
{
delete body->getMotionState();
}
delete obj;
}
break;
}

View File

@@ -77,6 +77,7 @@ btSimpleBroadphase::~btSimpleBroadphase()
if (m_ownsPairCache)
{
m_pairCache->~btOverlappingPairCache();
btAlignedFree(m_pairCache);
}
}

View File

@@ -77,7 +77,7 @@ protected:
void freeHandle(btSimpleBroadphaseProxy* proxy)
{
int handle = int(proxy-m_pHandles);
btAssert(handle > 0 && handle < m_maxHandles);
btAssert(handle >= 0 && handle < m_maxHandles);
proxy->SetNextFree(m_firstFreeHandle);
m_firstFreeHandle = handle;