[Bf-blender-cvs] [da9fb8496c7] hair_guides: Proper freeing of groom data.

Lukas Tönne noreply at git.blender.org
Tue Dec 19 13:56:09 CET 2017


Commit: da9fb8496c749a1b54c5da8c864a7d2970401fc2
Author: Lukas Tönne
Date:   Tue Dec 19 12:01:37 2017 +0000
Branches: hair_guides
https://developer.blender.org/rBda9fb8496c749a1b54c5da8c864a7d2970401fc2

Proper freeing of groom data.

===================================================================

M	source/blender/blenkernel/intern/groom.c

===================================================================

diff --git a/source/blender/blenkernel/intern/groom.c b/source/blender/blenkernel/intern/groom.c
index fcc4f60cba7..d4f0fd4f832 100644
--- a/source/blender/blenkernel/intern/groom.c
+++ b/source/blender/blenkernel/intern/groom.c
@@ -71,9 +71,32 @@ void *BKE_groom_add(Main *bmain, const char *name)
 	return groom;
 }
 
+static void groom_bundles_free(ListBase *bundles)
+{
+	for (GroomBundle *bundle = bundles->first; bundle; bundle = bundle->next)
+	{
+		BLI_freelistN(&bundle->sections);
+	}
+	BLI_freelistN(bundles);
+}
+
 /** Free (or release) any data used by this groom (does not free the groom itself). */
 void BKE_groom_free(Groom *groom)
 {
+	if (groom->edit_groom)
+	{
+		EditGroom *edit = groom->edit_groom;
+		
+		groom_bundles_free(&edit->bundles);
+		
+		MEM_freeN(edit);
+		groom->edit_groom = NULL;
+	}
+	
+	MEM_SAFE_FREE(groom->bb);
+	
+	groom_bundles_free(&groom->bundles);
+	
 	BKE_animdata_free(&groom->id, false);
 }



More information about the Bf-blender-cvs mailing list