From 63f62cd757a6e102cbf6dc97215d9291f9c92a2d Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 22 Jun 2015 08:22:47 +1000 Subject: Fix memory leak /w multi-drag over a single button --- source/blender/editors/interface/interface_handlers.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 6226ca56a2c..1a1d5606242 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; + } } } -- cgit v1.2.3