[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59644] trunk/blender/source/blender/ render/intern/source/pipeline.c: Fix #36602: crash with freestyle and full sample render of empty render layer.

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Aug 29 22:53:29 CEST 2013


Revision: 59644
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59644
Author:   blendix
Date:     2013-08-29 20:53:29 +0000 (Thu, 29 Aug 2013)
Log Message:
-----------
Fix #36602: crash with freestyle and full sample render of empty render layer.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/pipeline.c

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c	2013-08-29 20:53:20 UTC (rev 59643)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2013-08-29 20:53:29 UTC (rev 59644)
@@ -1697,12 +1697,17 @@
 	for (srl= (SceneRenderLayer *)re->r.layers.first; srl; srl= srl->next) {
 		if ((re->r.scemode & R_SINGLE_LAYER) && srl != actsrl)
 			continue;
+
 		if (FRS_is_freestyle_enabled(srl)) {
 			freestyle_render = (Render *)link->data;
-			render_result_exr_file_read(freestyle_render, sample);
-			FRS_composite_result(re, srl, freestyle_render);
-			RE_FreeRenderResult(freestyle_render->result);
-			freestyle_render->result = NULL;
+
+			/* may be NULL in case of empty render layer */
+			if (freestyle_render) {
+				render_result_exr_file_read(freestyle_render, sample);
+				FRS_composite_result(re, srl, freestyle_render);
+				RE_FreeRenderResult(freestyle_render->result);
+				freestyle_render->result = NULL;
+			}
 		}
 		link = link->next;
 	}
@@ -1717,8 +1722,9 @@
 
 	for (re1= RenderGlobal.renderlist.first; re1; re1= re1->next) {
 		for (link = (LinkData *)re1->freestyle_renders.first; link; link = link->next) {
-			if (link->data) {
-				freestyle_render = (Render *)link->data;
+			freestyle_render = (Render *)link->data;
+
+			if (freestyle_render) {
 				freestyle_scene = freestyle_render->scene;
 				RE_FreeRender(freestyle_render);
 				BKE_scene_unlink(&re1->freestyle_bmain, freestyle_scene, NULL);




More information about the Bf-blender-cvs mailing list