[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54151] trunk/blender/source/blender/ render/intern/source/pipeline.c: Fix #34004: crash when canceling ongoing render with scene strip

Sergey Sharybin sergey.vfx at gmail.com
Mon Jan 28 14:29:18 CET 2013


Revision: 54151
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54151
Author:   nazgul
Date:     2013-01-28 13:29:10 +0000 (Mon, 28 Jan 2013)
Log Message:
-----------
Fix #34004: crash when canceling ongoing render with scene strip

Issue was caused by recursive call of RE_BlenderFrame. Solved by
reshuffling image pool init/free in do_render_all_options.

Should be harmless, but doublecheck on this is welcome.

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-01-28 12:57:56 UTC (rev 54150)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2013-01-28 13:29:10 UTC (rev 54151)
@@ -1787,8 +1787,6 @@
 	/* ensure no images are in memory from previous animated sequences */
 	BKE_image_all_free_anim_ibufs(re->r.cfra);
 
-	re->pool = BKE_image_pool_new();
-
 	if (RE_engine_render(re, 1)) {
 		/* in this case external render overrides all */
 	}
@@ -1801,7 +1799,12 @@
 		re->display_draw(re->ddh, re->result, NULL);
 	}
 	else {
+		re->pool = BKE_image_pool_new();
+
 		do_render_composite_fields_blur_3d(re);
+
+		BKE_image_pool_free(re->pool);
+		re->pool = NULL;
 	}
 	
 	re->i.lastframetime = PIL_check_seconds_timer() - re->i.starttime;
@@ -1813,9 +1816,6 @@
 		renderresult_stampinfo(re);
 		re->display_draw(re->ddh, re->result, NULL);
 	}
-
-	BKE_image_pool_free(re->pool);
-	re->pool = NULL;
 }
 
 static int check_valid_camera(Scene *scene, Object *camera_override)




More information about the Bf-blender-cvs mailing list