From cc96196f10c9615ca6506b5d7dc57e0c9cfbe1ed Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 28 Jan 2013 13:29:10 +0000 Subject: 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. --- source/blender/render/intern/source/pipeline.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 3e9f5996ddc..2c90110b458 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1787,8 +1787,6 @@ static void do_render_all_options(Render *re) /* 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 @@ static void do_render_all_options(Render *re) 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 @@ static void do_render_all_options(Render *re) 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) -- cgit v1.2.3