Set Game_wind to nullptr at the start of responding to EVENT_WINDOW_CLOSE in game_handler
This prevents newdemo_stop_playback from attempting to close Game_wind, which results in it being freed twice - in particular when switching to the editor (via delete-E) when playing a demo.
This commit is contained in:
parent
b8b19baa92
commit
46abf5f31f
|
@ -1281,6 +1281,7 @@ window_event_result game_handler(window *,const d_event &event, const unused_win
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EVENT_WINDOW_CLOSE:
|
case EVENT_WINDOW_CLOSE:
|
||||||
|
Game_wind = nullptr; // Don't let any of the code below close Game_wind - it's already being done!
|
||||||
digi_stop_digi_sounds();
|
digi_stop_digi_sounds();
|
||||||
|
|
||||||
if ( (Newdemo_state == ND_STATE_RECORDING) || (Newdemo_state == ND_STATE_PAUSED) )
|
if ( (Newdemo_state == ND_STATE_RECORDING) || (Newdemo_state == ND_STATE_PAUSED) )
|
||||||
|
@ -1299,7 +1300,6 @@ window_event_result game_handler(window *,const d_event &event, const unused_win
|
||||||
if (!EditorWindow) // have to do it this way because of the necessary longjmp. Yuck.
|
if (!EditorWindow) // have to do it this way because of the necessary longjmp. Yuck.
|
||||||
#endif
|
#endif
|
||||||
show_menus();
|
show_menus();
|
||||||
Game_wind = NULL;
|
|
||||||
event_toggle_focus(0);
|
event_toggle_focus(0);
|
||||||
key_toggle_repeat(1);
|
key_toggle_repeat(1);
|
||||||
return window_event_result::ignored;
|
return window_event_result::ignored;
|
||||||
|
|
Loading…
Reference in a new issue