Memory leak on deleting collision objects?

simoncl
Posts: 1
Joined: Sat Dec 26, 2009 10:06 am

Memory leak on deleting collision objects?

Post by simoncl »

Hi.
I seem to be having a problem freeing collision objects and collision shapes.
My collision world is built once and I want to add and remove collision objects at run time.
I am adding and removing just like in the basic demo example except I'm only using Bullet for collision detection so I'm using the collision demo example code for that.
When profiling the code in the Xcode Leaks tool, it's reporting a memory leak. 80 Bytes the caller is btAllocDefault. This is not the case if I accloate all the collision objects upfront.

Any help on this would be great.

Here are some code snippets. Hopefully it's just me doing something dumb.

///adding//
btCollisionObject *obj=new btCollisionObject;
btMatrix3x3 basisA;
basisA.setIdentity();
obj->getWorldTransform().setBasis(basisA);
obj->getWorldTransform().setFromOpenGLMatrix(&m.m[0]);
btCollisionShape* boxA = new btBoxShape(btVector3(dimX,dimY,dimZ));
obj->setCollisionShape(boxA);
collisionWorld->addCollisionObject(obj,type, collideWith);

///removing//
int i;
for (i=collisionWorld->getNumCollisionObjects()-1; i>=0 ;i--)
{
btCollisionObject* obj = collisionWorld->getCollisionObjectArray();
collisionWorld->removeCollisionObject( obj );
delete obj;
}
//delete collision shapes
for (int j=0;j<m_collisionShapes.size();j++)
{
btCollisionShape* shape = m_collisionShapes[j];
delete shape;
}

Cheers Simon