[Bf-blender-cvs] [a566b71333c] master: Fix crash closing stacked file browser window
Julian Eisel
noreply at git.blender.org
Sun Sep 8 14:41:05 CEST 2019
Commit: a566b71333cf9352bc676bbf8df6922d99eeaa81
Author: Julian Eisel
Date: Sat Sep 7 22:40:28 2019 +0200
Branches: master
https://developer.blender.org/rBa566b71333cf9352bc676bbf8df6922d99eeaa81
Fix crash closing stacked file browser window
Caused by ab823176d31dc1.
Steps to reproduce were:
* Open Preferences
* Open file browser through Lights -> Install (doesn't matter which)
* Close browser through the window controlls
The window was freed earlier, but still referenced by new handler
context storage.
===================================================================
M source/blender/windowmanager/intern/wm_event_system.c
===================================================================
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index ff22956e723..21c6c2ae60b 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -2384,7 +2384,13 @@ static int wm_handler_fileselect_do(bContext *C,
/* remlink now, for load file case before removing*/
BLI_remlink(handlers, handler);
- if (val != EVT_FILESELECT_EXTERNAL_CANCEL) {
+ if (val == EVT_FILESELECT_EXTERNAL_CANCEL) {
+ /* The window might have been freed already. */
+ if (BLI_findindex(&wm->windows, handler->context.win) == -1) {
+ handler->context.win = NULL;
+ }
+ }
+ else {
for (wmWindow *win = wm->windows.first; win; win = win->next) {
if (WM_window_is_temp_screen(win)) {
bScreen *screen = WM_window_get_active_screen(win);
More information about the Bf-blender-cvs
mailing list