[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