diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-01-28 17:29:10 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-01-28 17:29:10 +0400 |
commit | cc96196f10c9615ca6506b5d7dc57e0c9cfbe1ed (patch) | |
tree | ad3f22ef7697a3e1a8878d6ac85c3ff287b206ad | |
parent | 2a144f03048efb0caaf29049f7a6e518148e3fb2 (diff) |
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.
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 10 |
1 files changed, 5 insertions, 5 deletions
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) |