Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-11-18 12:36:28 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-11-18 13:01:02 +0400
commit106699ecd7c904dedd1a25606c072d5570faa629 (patch)
tree3d0435cae00cbb67a2541d685d9eadd43a46273d
parent37f6bfb810f7087d1773d3712c50875cb822a9b2 (diff)
Fix T37301: Command line render gives seg fault 11 on OS X
Issue was caused by wm->defaultconf being NULL when in background mode which made keymap modifications from a script crash. Reviewed by Brecht, thanks!
-rw-r--r--source/blender/windowmanager/intern/wm_keymap.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/windowmanager/intern/wm_keymap.c b/source/blender/windowmanager/intern/wm_keymap.c
index ed27228f107..8e202eb93f0 100644
--- a/source/blender/windowmanager/intern/wm_keymap.c
+++ b/source/blender/windowmanager/intern/wm_keymap.c
@@ -710,11 +710,13 @@ wmKeyMap *WM_modalkeymap_add(wmKeyConfig *keyconf, const char *idname, EnumPrope
if (!items) {
/* init modal items from default config */
wmWindowManager *wm = G.main->wm.first;
- wmKeyMap *defaultkm = WM_keymap_list_find(&wm->defaultconf->keymaps, km->idname, 0, 0);
+ if (wm->defaultconf) {
+ wmKeyMap *defaultkm = WM_keymap_list_find(&wm->defaultconf->keymaps, km->idname, 0, 0);
- if (defaultkm) {
- km->modal_items = defaultkm->modal_items;
- km->poll = defaultkm->poll;
+ if (defaultkm) {
+ km->modal_items = defaultkm->modal_items;
+ km->poll = defaultkm->poll;
+ }
}
}
@@ -803,6 +805,10 @@ static void wm_user_modal_keymap_set_items(wmWindowManager *wm, wmKeyMap *km)
int propvalue;
if (km && (km->flag & KEYMAP_MODAL) && !km->modal_items) {
+ if (wm->defaultconf == NULL) {
+ return;
+ }
+
defaultkm = WM_keymap_list_find(&wm->defaultconf->keymaps, km->idname, 0, 0);
if (!defaultkm)
@@ -1115,7 +1121,7 @@ static wmKeyMap *wm_keymap_preset(wmWindowManager *wm, wmKeyMap *km)
wmKeyMap *keymap;
keymap = WM_keymap_list_find(&keyconf->keymaps, km->idname, km->spaceid, km->regionid);
- if (!keymap)
+ if (!keymap && wm->defaultconf)
keymap = WM_keymap_list_find(&wm->defaultconf->keymaps, km->idname, km->spaceid, km->regionid);
return keymap;