diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-17 02:45:29 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-12-17 02:45:29 +0400 |
commit | 6f24642a2d5ff7754cf15c3cf21a89e2db54555d (patch) | |
tree | 2ebe728dfb377a9b6187adb37c222f55330aa3cb /source | |
parent | c82fdb8e4189e6092c9c428d8540c01d677b6c54 (diff) |
Fix #27847: sequencer scene strip rendering crash, due to use of freed
RenderResult.rect. Sergey did all the work to track this down, I'm just
committing a slighty different fix.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/image.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index fb734ea4f3d..7c2542b33be 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -2277,7 +2277,10 @@ static ImBuf *image_get_render_result(Image *ima, ImageUser *iuser, void **lock_ ibuf->x= rres.rectx; ibuf->y= rres.recty; - if(ibuf->rect_float!=rectf || rect) /* ensure correct redraw */ + /* free rect buffer if float buffer changes, so it can be recreated with + the updated result, and also in case we got byte buffer from sequencer, + so we don't keep reference to freed buffer */ + if(ibuf->rect_float!=rectf || rect || !rectf) imb_freerectImBuf(ibuf); if(rect) |