From fa82be6e822d8da0c5ad324ce51b97d571933223 Mon Sep 17 00:00:00 2001 From: Magnus Larsen Date: Wed, 21 Sep 2022 00:28:37 -0700 Subject: [PATCH] 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 --- vphysics_jolt/vjolt_collide.cpp | 2 +- vphysics_jolt/vjolt_collide.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/vphysics_jolt/vjolt_collide.cpp b/vphysics_jolt/vjolt_collide.cpp index 42f4be2..5b2393b 100644 --- a/vphysics_jolt/vjolt_collide.cpp +++ b/vphysics_jolt/vjolt_collide.cpp @@ -700,7 +700,7 @@ void JoltPhysicsCollision::VCollideUnload( vcollide_t *pVCollide ) { VCollideFreeUserData( pVCollide ); for ( int i = 0; i < pVCollide->solidCount; i++ ) - delete pVCollide->solids[ i ]; + delete pVCollide->solids[ i ]->ToShape(); delete[] pVCollide->solids; delete[] pVCollide->pKeyValues; diff --git a/vphysics_jolt/vjolt_collide.h b/vphysics_jolt/vjolt_collide.h index ebdbec1..08422b9 100644 --- a/vphysics_jolt/vjolt_collide.h +++ b/vphysics_jolt/vjolt_collide.h @@ -12,6 +12,8 @@ // Does not and will not contain *any* data. class CPhysCollide { + ~CPhysCollide() = delete; + public: JPH::Shape* ToShape() { @@ -42,6 +44,8 @@ public: // Does not and will not contain *any* data. class CPhysConvex { + ~CPhysConvex() = delete; + public: JPH::ConvexShape* ToConvexShape() {