Commit: 63f62cd757a6e102cbf6dc97215d9291f9c92a2d
Author: Campbell Barton
Date:   Mon Jun 22 08:22:47 2015 +1000
Branches: master
https://developer.blender.org/rB63f62cd757a6e102cbf6dc97215d9291f9c92a2d

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 6226ca5..1a1d560 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;
+                                               }
                                        }
                                }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to