[Bf-blender-cvs] [b709652] blender-v2.75-release: Fix memory leak /w multi-drag over a single button

Campbell Barton noreply at git.blender.org
Mon Jun 29 16:17:54 CEST 2015


Commit: b709652b67a8ed037693b8a99c7fc86c840e039a
Author: Campbell Barton
Date:   Mon Jun 22 08:22:47 2015 +1000
Branches: blender-v2.75-release
https://developer.blender.org/rBb709652b67a8ed037693b8a99c7fc86c840e039a

Fix memory leak /w multi-drag over a single button

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

M	source/blender/editors/interface/interface_handlers.c

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

diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index c911e6c..8823cbc 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -1062,6 +1062,7 @@ static void ui_multibut_states_create(uiBut *but_active, uiHandleButtonData *dat
 	uiBut *but;
 
 	BLI_assert(data->multi_data.init == BUTTON_MULTI_INIT_SETUP);
+	BLI_assert(data->multi_data.has_mbuts);
 
 	data->multi_data.bs_mbuts = UI_butstore_create(but_active->block);
 
@@ -7032,8 +7033,13 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent *
 					     /* just to be sure, check we're dragging more hoz then virt */
 					     abs(event->prevx - event->x) > abs(event->prevy - event->y)))
 					{
-						ui_multibut_states_create(but, data);
-						data->multi_data.init = BUTTON_MULTI_INIT_ENABLE;
+						if (data->multi_data.has_mbuts) {
+							ui_multibut_states_create(but, data);
+							data->multi_data.init = BUTTON_MULTI_INIT_ENABLE;
+						}
+						else {
+							data->multi_data.init = BUTTON_MULTI_INIT_DISABLE;
+						}
 					}
 				}




More information about the Bf-blender-cvs mailing list