Fix crash calling wm.open_mainfile from menu with --debug-memory enabled

Didn't do any bisecting, but guess it's caused rBb54e95a5c8dcb7 (2.74 is fine, 2.75 isn't).
I think this fix makes some other hacks redundant but need to check details (will do when we're back to bcon1 to avoid regressions).
This commit is contained in:
Julian Eisel 2016-09-01 16:55:01 +02:00
parent e240025276
commit 96dd1943af
Notes: blender-bot 2023-02-14 07:38:37 +01:00
Referenced by issue #49225, Sparsed render pass
1 changed files with 11 additions and 4 deletions

View File

@ -1369,9 +1369,6 @@ typedef struct wmOpPopUp {
/* Only invoked by OK button in popups created with wm_block_dialog_create() */
static void dialog_exec_cb(bContext *C, void *arg1, void *arg2)
{
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
wmOpPopUp *data = arg1;
uiBlock *block = arg2;
@ -1388,8 +1385,18 @@ static void dialog_exec_cb(bContext *C, void *arg1, void *arg2)
/* in this case, wm_operator_ui_popup_cancel wont run */
MEM_freeN(data);
/* get context data *after* WM_operator_call_ex which might have closed the current file and changed context */
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
/* check window before 'block->handle' incase the
* popup execution closed the window and freed the block. see T44688. */
* popup execution closed the window and freed the block. see T44688.
*/
/* Post 2.78 TODO: Check if this fix and others related to T44688 are still
* needed or can be improved now that requesting context data has been corrected
* (see above). We're close to release so not a good time for experiments.
* -- Julian
*/
if (BLI_findindex(&wm->windows, win) != -1) {
UI_popup_block_close(C, win, block);
}