From c4287a0d681abd4728f978d2ac55285cf6a6ecad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C5=99etislav=20=C5=A0tec?= <valsiterb@gmail.com>
Date: Sun, 2 Aug 2015 00:16:31 +0200
Subject: [PATCH] src/wieldmesh.cpp: Fix mesh extrusion memory leak

---
 src/wieldmesh.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/wieldmesh.cpp b/src/wieldmesh.cpp
index 56c84b959..391a456ab 100644
--- a/src/wieldmesh.cpp
+++ b/src/wieldmesh.cpp
@@ -37,7 +37,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #define MIN_EXTRUSION_MESH_RESOLUTION 16
 #define MAX_EXTRUSION_MESH_RESOLUTION 512
 
-static scene::IMesh* createExtrusionMesh(int resolution_x, int resolution_y)
+static scene::IMesh *createExtrusionMesh(int resolution_x, int resolution_y)
 {
 	const f32 r = 0.5;
 
@@ -114,8 +114,9 @@ static scene::IMesh* createExtrusionMesh(int resolution_x, int resolution_y)
 	mesh->addMeshBuffer(buf);
 	buf->drop();
 	scaleMesh(mesh, scale);  // also recalculates bounding box
-	mesh = (scene::SMesh *)createForsythOptimizedMesh(mesh);
-	return mesh;
+	scene::IMesh *newmesh = createForsythOptimizedMesh(mesh);
+	mesh->drop();
+	return newmesh;
 }
 
 /*
-- 
GitLab