From: Rudolf Polzer <divverent@xonotic.org>
Date: Wed, 5 Dec 2012 05:33:47 +0000 (+0100)
Subject: Ent_Remove: delete skeletonobjects if there are any
X-Git-Tag: xonotic-v0.7.0~99^2~22
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=0b01af33f4f52b0ef253a709602ac53a1f96fb1a;p=xonotic%2Fxonotic-data.pk3dir.git

Ent_Remove: delete skeletonobjects if there are any

This fixes the memory leak CSAD had.
---

diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc
index c7a66a868..7145becc0 100644
--- a/qcsrc/client/Main.qc
+++ b/qcsrc/client/Main.qc
@@ -791,6 +791,12 @@ void Ent_Remove()
 	if(self.entremove)
 		self.entremove();
 
+	if(self.skeletonindex)
+	{
+		skel_delete(self.skeletonindex);
+		self.skeletonindex = 0;
+	}
+
 	self.enttype = 0;
 	self.classname = "";
 	self.draw = menu_sub_null;
diff --git a/qcsrc/client/player_skeleton.qc b/qcsrc/client/player_skeleton.qc
index 6dd895a6a..48fb8a34b 100644
--- a/qcsrc/client/player_skeleton.qc
+++ b/qcsrc/client/player_skeleton.qc
@@ -50,7 +50,6 @@ void skeleton_from_frames(entity e)
 		if(m)
 		{
 			e.skeletonindex = skel_create(m);
-			// FIXME LEAKED if player is removed
 			skeleton_identifybones(e);
 		}
 	}