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;