From 3658f1587d91a9f96e5e6f50908ed6dfd1177638 Mon Sep 17 00:00:00 2001 From: OTHGMars Date: Sat, 6 May 2017 20:57:10 -0400 Subject: [PATCH] Fixes a memory leak in the VolumetricFog object and corrects an array alloc mismatch. Once objects were being deleted on the client, the SAFE_DELETE(z_buf) needed to be removed from the destructor. This was causing a runtime crash (release only) because z_buf was still registered with the GFX device. --- Engine/source/environment/VolumetricFog.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Engine/source/environment/VolumetricFog.cpp b/Engine/source/environment/VolumetricFog.cpp index d3314f4c9..999a4d527 100644 --- a/Engine/source/environment/VolumetricFog.cpp +++ b/Engine/source/environment/VolumetricFog.cpp @@ -142,7 +142,7 @@ VolumetricFog::VolumetricFog() VolumetricFog::~VolumetricFog() { - if (isClientObject()) + if (!isClientObject()) return; for (S32 i = 0; i < det_size.size(); i++) @@ -152,12 +152,11 @@ VolumetricFog::~VolumetricFog() if (det_size[i].piArray != NULL) delete(det_size[i].piArray); if (det_size[i].verts != NULL) - delete(det_size[i].verts); + delete [] (det_size[i].verts); } det_size.clear(); - if (z_buf.isValid()) - SAFE_DELETE(z_buf); + z_buf = NULL; if (!mTexture.isNull()) mTexture.free(); @@ -365,7 +364,7 @@ bool VolumetricFog::LoadShape() if (det_size[i].piArray != NULL) delete(det_size[i].piArray); if (det_size[i].verts != NULL) - delete(det_size[i].verts); + delete [] (det_size[i].verts); } det_size.clear();