collide: Deconstruct CPhysCollide properly

It is necessary to dispatch the correct JPH::Shape dtor, even though
it's stored as a a CPhysCollide*.

This should fix #58
This commit is contained in:
Magnus Larsen 2022-09-21 00:28:37 -07:00 committed by Joshie
parent 6c1ec77980
commit 0c55d0082d
2 changed files with 5 additions and 1 deletions

View File

@ -700,7 +700,7 @@ void JoltPhysicsCollision::VCollideUnload( vcollide_t *pVCollide )
{ {
VCollideFreeUserData( pVCollide ); VCollideFreeUserData( pVCollide );
for ( int i = 0; i < pVCollide->solidCount; i++ ) for ( int i = 0; i < pVCollide->solidCount; i++ )
delete pVCollide->solids[ i ]; delete pVCollide->solids[ i ]->ToShape();
delete[] pVCollide->solids; delete[] pVCollide->solids;
delete[] pVCollide->pKeyValues; delete[] pVCollide->pKeyValues;

View File

@ -12,6 +12,8 @@
// Does not and will not contain *any* data. // Does not and will not contain *any* data.
class CPhysCollide class CPhysCollide
{ {
~CPhysCollide() = delete;
public: public:
JPH::Shape* ToShape() JPH::Shape* ToShape()
{ {
@ -42,6 +44,8 @@ public:
// Does not and will not contain *any* data. // Does not and will not contain *any* data.
class CPhysConvex class CPhysConvex
{ {
~CPhysConvex() = delete;
public: public:
JPH::ConvexShape* ToConvexShape() JPH::ConvexShape* ToConvexShape()
{ {