[Bf-blender-cvs] [f606263] master: Fix crash in blenderplayer when scrubbing off screen.

Antony Riakiotakis noreply at git.blender.org
Thu May 21 17:37:21 CEST 2015


Commit: f6062638c15754a7a88cc4f97fe2e656c73e6871
Author: Antony Riakiotakis
Date:   Thu May 21 17:37:11 2015 +0200
Branches: master
https://developer.blender.org/rBf6062638c15754a7a88cc4f97fe2e656c73e6871

Fix crash in blenderplayer when scrubbing off screen.

Was cache referencing deleted or NULL items.

Reported by Kopias on irc

===================================================================

M	source/blender/windowmanager/intern/wm_playanim.c

===================================================================

diff --git a/source/blender/windowmanager/intern/wm_playanim.c b/source/blender/windowmanager/intern/wm_playanim.c
index 81e0b0e..c2594cc 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




More information about the Bf-blender-cvs mailing list