[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51335] trunk/blender/source/blender/ editors/interface/interface_handlers.c: fix for own mistake using freed memory with menus.

Campbell Barton ideasman42 at gmail.com
Mon Oct 15 08:12:08 CEST 2012


Revision: 51335
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51335
Author:   campbellbarton
Date:     2012-10-15 06:12:05 +0000 (Mon, 15 Oct 2012)
Log Message:
-----------
fix for own mistake using freed memory with menus.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_handlers.c

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-10-15 04:17:29 UTC (rev 51334)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2012-10-15 06:12:05 UTC (rev 51335)
@@ -6775,9 +6775,13 @@
 	/* now handle events for our own menu */
 	if (retval == WM_UI_HANDLER_CONTINUE || event->type == TIMER) {
 		if (submenu && submenu->menuretval) {
+			int do_ret_out_parent = (submenu->menuretval & UI_RETURN_OUT_PARENT);
 			retval = ui_handle_menu_return_submenu(C, event, menu);
-			/* we may wan't to quit the submenu and handle the even in this menu */
-			if ((retval == WM_UI_HANDLER_BREAK) && (submenu->menuretval & UI_RETURN_OUT_PARENT)) {
+			submenu = NULL;  /* hint not to use this, it may be freed by call above */
+			(void)submenu;
+			/* we may wan't to quit the submenu and handle the even in this menu,
+			 * if its important to use it, check 'data->menu' first */
+			if ((retval == WM_UI_HANDLER_BREAK) && do_ret_out_parent) {
 				retval = ui_handle_menu_event(C, event, menu, level);
 			}
 		}




More information about the Bf-blender-cvs mailing list