From a9a67d62c3ad2f0f05c5f8a3552674d650d2ed99 Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Tue, 22 Jul 2008 15:07:04 +0000 Subject: [PATCH] Fixed memory leak in btDbvtBroadphase http://code.google.com/p/bullet/issues/detail?id=66 --- .../BroadphaseCollision/btDbvtBroadphase.cpp | 6 +++++- .../BroadphaseCollision/btOverlappingPairCache.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp b/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp index 83ae922df..0124817c0 100644 --- a/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp +++ b/src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp @@ -159,7 +159,11 @@ clear(m_profiling); // btDbvtBroadphase::~btDbvtBroadphase() { -if(m_releasepaircache) btAlignedFree(m_paircache); +if(m_releasepaircache) +{ + m_paircache->~btOverlappingPairCache(); + btAlignedFree(m_paircache); +} } // diff --git a/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h b/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h index 46726ce26..39dbf82e9 100644 --- a/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h +++ b/src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.h @@ -61,6 +61,7 @@ const int BT_NULL_PAIR=0xffffffff; class btOverlappingPairCache : public btOverlappingPairCallback { public: + virtual ~btOverlappingPairCache() {} // this is needed so we can get to the derived class destructor virtual btBroadphasePair* getOverlappingPairArrayPtr() = 0;