diff --git a/driver.c b/driver.c index dcf5b13412..9467b87fe4 100644 --- a/driver.c +++ b/driver.c @@ -449,10 +449,13 @@ void global_init_drivers(void) void global_uninit_drivers(void) { - if (driver.video_data) + if (driver.video && driver.video_data) + { + driver.video->free(driver.video_data); driver.video_data = NULL; + } - if (driver.input_data) + if (driver.input && driver.input_data) { driver.input->free(driver.input_data); driver.input_data = NULL; diff --git a/frontend/frontend.c b/frontend/frontend.c index 264795f4a8..a1dd6535cf 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -283,10 +283,9 @@ returntype main_entry(signature()) while ((g_extern.is_paused && !g_extern.is_oneshot) ? rarch_main_idle_iterate() : rarch_main_iterate()); #endif - global_uninit_drivers(); - rarch_main_deinit(); rarch_deinit_msg_queue(); + global_uninit_drivers(); #ifdef PERF_TEST rarch_perf_log();