diff --git a/retroarch.c b/retroarch.c index 5a937534f3..0e459fe965 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1101,7 +1101,7 @@ void rarch_main_free(void) event_command(EVENT_CMD_LOG_FILE_DEINIT); rarch_main_state_free(); - rarch_main_global_free(); + rarch_main_ctl(RARCH_MAIN_CTL_GLOBAL_FREE, NULL); config_free(); } diff --git a/runloop.c b/runloop.c index b376229fe1..0c46d82c0f 100644 --- a/runloop.c +++ b/runloop.c @@ -508,10 +508,18 @@ bool rarch_main_ctl(enum rarch_main_ctl_state state, void *data) global->bsv.movie_end = false; global->bsv.movie_playback = false; break; + case RARCH_MAIN_CTL_GLOBAL_FREE: + event_command(EVENT_CMD_TEMPORARY_CONTENT_DEINIT); + event_command(EVENT_CMD_SUBSYSTEM_FULLPATHS_DEINIT); + event_command(EVENT_CMD_RECORD_DEINIT); + event_command(EVENT_CMD_LOG_FILE_DEINIT); + + memset(&g_extern, 0, sizeof(g_extern)); + break; case RARCH_MAIN_CTL_CLEAR_STATE: driver_clear_state(); rarch_main_state_free(); - rarch_main_global_free(); + rarch_main_ctl(RARCH_MAIN_CTL_GLOBAL_FREE, NULL); break; case RARCH_MAIN_CTL_SET_MAX_FRAMES: { @@ -721,16 +729,6 @@ void rarch_main_state_free(void) main_max_frames = 0; } -void rarch_main_global_free(void) -{ - event_command(EVENT_CMD_TEMPORARY_CONTENT_DEINIT); - event_command(EVENT_CMD_SUBSYSTEM_FULLPATHS_DEINIT); - event_command(EVENT_CMD_RECORD_DEINIT); - event_command(EVENT_CMD_LOG_FILE_DEINIT); - - memset(&g_extern, 0, sizeof(g_extern)); -} - bool rarch_main_verbosity(void) { global_t *global = global_get_ptr(); diff --git a/runloop.h b/runloop.h index 89dc75be4a..9016a356ad 100644 --- a/runloop.h +++ b/runloop.h @@ -44,6 +44,7 @@ enum rarch_main_ctl_state RARCH_MAIN_CTL_SET_MAX_FRAMES, RARCH_MAIN_CTL_SET_FRAME_LIMIT_LAST_TIME, RARCH_MAIN_CTL_CLEAR_STATE, + RARCH_MAIN_CTL_GLOBAL_FREE, /* Checks for state changes in this frame. */ RARCH_MAIN_CTL_CHECK_STATE, RARCH_MAIN_CTL_CHECK_MOVIE, @@ -352,8 +353,6 @@ bool rarch_main_ctl(enum rarch_main_ctl_state state, void *data); void rarch_main_state_free(void); -void rarch_main_global_free(void); - #ifdef __cplusplus } #endif