From 9397b5de083fabe2e93c55de5bf90e5c75bbe9c1 Mon Sep 17 00:00:00 2001
From: PilzAdam <pilzadam@minetest.net>
Date: Sat, 18 May 2013 01:52:18 +0200
Subject: [PATCH] Fix memory leak in MeshUpdateThread

---
 src/client.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/client.cpp b/src/client.cpp
index 929ed0eab..533c40ab2 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -350,6 +350,11 @@ Client::~Client()
 	m_mesh_update_thread.setRun(false);
 	while(m_mesh_update_thread.IsRunning())
 		sleep_ms(100);
+	while(!m_mesh_update_thread.m_queue_out.empty()) {
+		MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_front();
+		delete r.mesh;
+	}
+
 
 	delete m_inventory_from_server;
 
@@ -757,6 +762,8 @@ void Client::step(float dtime)
 
 				// Replace with the new mesh
 				block->mesh = r.mesh;
+			} else {
+				delete r.mesh;
 			}
 			if(r.ack_block_to_server)
 			{
-- 
GitLab