From 876009b0533c8245ec7ff4f33c5d8d13acc8768c Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Mon, 27 Oct 2008 20:24:01 +0000 Subject: [PATCH] fix two memory leaks, thanks to Benoit and Ole. --- src/BulletCollision/BroadphaseCollision/btAxisSweep3.h | 3 +++ .../btSoftBodyRigidBodyCollisionConfiguration.cpp | 5 ++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h b/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h index 2e7f0af2f..88972355d 100644 --- a/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h +++ b/src/BulletCollision/BroadphaseCollision/btAxisSweep3.h @@ -403,7 +403,10 @@ template btAxisSweep3Internal::~btAxisSweep3Internal() { if (m_raycastAccelerator) + { + m_raycastAccelerator->~btDbvtBroadphase(); btAlignedFree (m_raycastAccelerator); + } for (int i = 2; i >= 0; i--) { diff --git a/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp b/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp index bca968a58..eec75bfd3 100644 --- a/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp +++ b/src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp @@ -60,17 +60,16 @@ btSoftBodyRigidBodyCollisionConfiguration::btSoftBodyRigidBodyCollisionConfigura int collisionAlgorithmMaxElementSize = btMax(maxSize0,maxSize1); collisionAlgorithmMaxElementSize = btMax(collisionAlgorithmMaxElementSize,maxSize2); + if (collisionAlgorithmMaxElementSize > curElemSize) { + m_collisionAlgorithmPool->~btPoolAllocator(); btAlignedFree(m_collisionAlgorithmPool); void* mem = btAlignedAlloc(sizeof(btPoolAllocator),16); m_collisionAlgorithmPool = new(mem) btPoolAllocator(collisionAlgorithmMaxElementSize,constructionInfo.m_defaultMaxCollisionAlgorithmPoolSize); } } - - - } btSoftBodyRigidBodyCollisionConfiguration::~btSoftBodyRigidBodyCollisionConfiguration()