From f6062638c15754a7a88cc4f97fe2e656c73e6871 Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Thu, 21 May 2015 17:37:11 +0200 Subject: Fix crash in blenderplayer when scrubbing off screen. Was cache referencing deleted or NULL items. Reported by Kopias on irc --- source/blender/windowmanager/intern/wm_playanim.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'source/blender/windowmanager') diff --git a/source/blender/windowmanager/intern/wm_playanim.c b/source/blender/windowmanager/intern/wm_playanim.c index 81e0b0e2605..c2594cc4627 100644 --- a/source/blender/windowmanager/intern/wm_playanim.c +++ b/source/blender/windowmanager/intern/wm_playanim.c @@ -1154,10 +1154,10 @@ static char *wm_main_playanim_intern(int argc, const char **argv) /* really basic memory conservation scheme. Keep frames in a fifo queue */ node = inmempicsbase.last; - while (added_images > PLAY_FRAME_CACHE_MAX) { + while (node && added_images > PLAY_FRAME_CACHE_MAX) { PlayAnimPict *pic = node->data; - if (pic->ibuf != ibuf) { + if (pic->ibuf && pic->ibuf != ibuf) { LinkData *node_tmp; IMB_freeImBuf(pic->ibuf); pic->ibuf = NULL; @@ -1281,6 +1281,9 @@ static char *wm_main_playanim_intern(int argc, const char **argv) #endif BLI_freelistN(&picsbase); + + BLI_freelistN(&inmempicsbase); + added_images = 0; #if 0 // XXX25 free_blender(); #else -- cgit v1.2.3