[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36252] trunk/blender/source/blender/ windowmanager/intern/wm_event_system.c: fix crash with lots of operators when running "blender -d".
Andrea Weikert
elubie at gmx.net
Wed Apr 20 22:46:02 CEST 2011
Revision: 36252
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36252
Author: elubie
Date: 2011-04-20 20:46:02 +0000 (Wed, 20 Apr 2011)
Log Message:
-----------
fix crash with lots of operators when running "blender -d". Easy case to reproduce, just try to delete default cube.
Temporary hack to prevent crasher, likely caused by rev. 36242.
Modified Paths:
--------------
trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2011-04-20 20:31:43 UTC (rev 36251)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c 2011-04-20 20:46:02 UTC (rev 36252)
@@ -1538,12 +1538,19 @@
}
/* modal ui handler can be tagged to be freed */
+ /* XXX TODO - handler was free'd in wm_handler_ui_call
+ and memory could be written to in BLI_remlink.
+ As temporary solution preventing this by
+ making sure handler is still in the list.
+ */
+
if(handler->flag & WM_HANDLER_DO_FREE) {
- BLI_remlink(handlers, handler);
- wm_event_free_handler(handler);
+ if (BLI_findindex(handlers, handler) > 0) {
+ BLI_remlink(handlers, handler);
+ wm_event_free_handler(handler);
+ }
}
-
/* XXX fileread case */
if(CTX_wm_window(C)==NULL)
return action;
More information about the Bf-blender-cvs
mailing list