[Bf-blender-cvs] [ca0dcd830c5] master: Fix T75222: Crash activating menu search
Campbell Barton
noreply at git.blender.org
Wed Apr 1 12:00:52 CEST 2020
Commit: ca0dcd830c5e880b9ea25d4b95a581b2aaeef4e4
Author: Campbell Barton
Date: Wed Apr 1 20:59:50 2020 +1100
Branches: master
https://developer.blender.org/rBca0dcd830c5e880b9ea25d4b95a581b2aaeef4e4
Fix T75222: Crash activating menu search
===================================================================
M release/scripts/startup/bl_ui/space_topbar.py
M source/blender/editors/interface/interface_templates.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/space_topbar.py b/release/scripts/startup/bl_ui/space_topbar.py
index 40824cbeb52..1e6f03c2b0c 100644
--- a/release/scripts/startup/bl_ui/space_topbar.py
+++ b/release/scripts/startup/bl_ui/space_topbar.py
@@ -208,7 +208,7 @@ class TOPBAR_MT_editor_menus(Menu):
layout = self.layout
# Allow calling this menu directly (this might not be a header area).
- if getattr(context.area, "show_menus"):
+ if getattr(context.area, "show_menus", False):
layout.menu("TOPBAR_MT_app", text="", icon='BLENDER')
else:
layout.menu("TOPBAR_MT_app", text="Blender")
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index d7377a0e56e..c750187d7a3 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -6827,12 +6827,15 @@ static void menu_types_add_from_keymap_items(bContext *C,
{
wmWindowManager *wm = CTX_wm_manager(C);
ListBase *handlers[] = {
- ®ion->handlers,
- &sa->handlers,
+ region ? ®ion->handlers : NULL,
+ sa ? &sa->handlers : NULL,
&win->handlers,
};
for (int handler_index = 0; handler_index < ARRAY_SIZE(handlers); handler_index++) {
+ if (handlers[handler_index] == NULL) {
+ continue;
+ }
LISTBASE_FOREACH (wmEventHandler *, handler_base, handlers[handler_index]) {
/* During this loop, ui handlers for nested menus can tag multiple handlers free. */
if (handler_base->flag & WM_HANDLER_DO_FREE) {
@@ -7092,11 +7095,15 @@ static struct MenuSearch_Data *menu_items_from_ui_create(bContext *C,
menu_items_from_ui_create_item_from_button(data, memarena, mt, drawstr_submenu, sub_but);
}
- BLI_remlink(®ion->uiblocks, sub_block);
+ if (region) {
+ BLI_remlink(®ion->uiblocks, sub_block);
+ }
UI_block_free(NULL, sub_block);
}
}
- BLI_remlink(®ion->uiblocks, block);
+ if (region) {
+ BLI_remlink(®ion->uiblocks, block);
+ }
UI_block_free(NULL, block);
/* Add key-map items as a second pass,
More information about the Bf-blender-cvs
mailing list