[Bf-blender-cvs] [ed1278b0bcd] blender2.8: Fix SceneRenderLayer memory leak for files created with 2.8

Dalai Felinto noreply at git.blender.org
Wed Nov 22 11:51:35 CET 2017


Commit: ed1278b0bcddc50a13ea31225a0dfc0de643a637
Author: Dalai Felinto
Date:   Wed Nov 22 08:41:06 2017 -0200
Branches: blender2.8
https://developer.blender.org/rBed1278b0bcddc50a13ea31225a0dfc0de643a637

Fix SceneRenderLayer memory leak for files created with 2.8

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

M	source/blender/blenloader/intern/versioning_280.c

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

diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index b261935c09e..1be4402012d 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -725,7 +725,8 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
 	}
 
 	{
-		if (!DNA_struct_elem_find(fd->filesdna, "SceneLayer", "FreestyleConfig", "freestyle_config")) {
+		if ((DNA_struct_elem_find(fd->filesdna, "SceneLayer", "FreestyleConfig", "freestyle_config") == false) &&
+		    DNA_struct_elem_find(fd->filesdna, "Scene", "ListBase", "render_layers")) {
 			for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
 				SceneLayer *scene_layer;
 				for (scene_layer = scene->render_layers.first; scene_layer; scene_layer = scene_layer->next) {
@@ -735,6 +736,15 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
 					scene_layer->pass_alpha_threshold = 0.5f;
 					BKE_freestyle_config_init(&scene_layer->freestyle_config);
 				}
+
+				for (SceneRenderLayer *srl = scene->r.layers.first; srl; srl = srl->next) {
+					if (srl->prop) {
+						IDP_FreeProperty(srl->prop);
+						MEM_freeN(srl->prop);
+					}
+					BKE_freestyle_config_free(&srl->freestyleConfig);
+				}
+				BLI_freelistN(&scene->r.layers);
 			}
 		}
 	}



More information about the Bf-blender-cvs mailing list