From ee1155fe6d5683578294c0ea20a8a3a0bf8ecbe4 Mon Sep 17 00:00:00 2001
From: sapier <Sapier at GMX dot net>
Date: Tue, 9 Apr 2013 20:14:07 +0200
Subject: [PATCH] Really fix itemdef memory leak

---
 src/itemdef.cpp | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/itemdef.cpp b/src/itemdef.cpp
index 05328ea48..d660db77f 100644
--- a/src/itemdef.cpp
+++ b/src/itemdef.cpp
@@ -226,17 +226,11 @@ class CItemDefManager: public IWritableItemDefManager
 public:
 	CItemDefManager()
 	{
-		for (std::map<std::string, ItemDefinition*>::iterator iter =
-				m_item_definitions.begin(); iter != m_item_definitions.end();
-				iter ++) {
-			delete iter->second;
-		}
-		m_item_definitions.clear();
+
 #ifndef SERVER
 		m_main_thread = get_current_thread_id();
 		m_driver = NULL;
 #endif
-	
 		clear();
 	}
 	virtual ~CItemDefManager()
@@ -260,6 +254,12 @@ class CItemDefManager: public IWritableItemDefManager
 		}
 		m_driver = NULL;
 #endif
+		for (std::map<std::string, ItemDefinition*>::iterator iter =
+				m_item_definitions.begin(); iter != m_item_definitions.end();
+				iter ++) {
+			delete iter->second;
+		}
+		m_item_definitions.clear();
 	}
 	virtual const ItemDefinition& get(const std::string &name_) const
 	{
-- 
GitLab