[Bf-blender-cvs] [f2e217938e] clay-engine: Fixed unfreed memory

Clément Foucault noreply at git.blender.org
Mon Jan 30 15:36:24 CET 2017


Commit: f2e217938ed1c67c2b09b4e77f33f9303b0f0a1f
Author: Clément Foucault
Date:   Mon Jan 30 15:35:12 2017 +0100
Branches: clay-engine
https://developer.blender.org/rBf2e217938ed1c67c2b09b4e77f33f9303b0f0a1f

Fixed unfreed memory

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

M	source/blender/blenkernel/intern/material.c
M	source/blender/blenkernel/intern/scene.c

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

diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 3fb7ee89ae..89af048f73 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -112,7 +112,13 @@ void BKE_material_free(Material *ma)
 	BKE_icon_id_delete((ID *)ma);
 	BKE_previewimg_free(&ma->preview);
 
-	/* TODO Free Engine Settings */
+	for (MaterialEngineSettings *mes = ma->engines_settings.first; mes; mes = mes->next) {
+		if (mes->runtime)
+			MEM_SAFE_FREE(mes->runtime);
+		if (mes->data)
+			MEM_SAFE_FREE(mes->data);
+	}
+	BLI_freelistN(&ma->engines_settings);
 }
 
 void BKE_material_init(Material *ma)
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index b4aa47bf9d..807496d88e 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -569,6 +569,12 @@ void BKE_scene_free(Scene *sce)
 	sce->collection = NULL;
 
 	/* Runtime Engine Data */
+	for (RenderEngineSettings *res = sce->engines_settings.first; res; res = res->next) {
+		if (res->runtime)
+			MEM_freeN(res->runtime);
+		if (res->data)
+			MEM_freeN(res->data);
+	}
 	BLI_freelistN(&sce->engines_settings);
 }




More information about the Bf-blender-cvs mailing list