diff --git a/dynamic.c b/dynamic.c index 4664fc2d3b..e0310d171d 100644 --- a/dynamic.c +++ b/dynamic.c @@ -403,15 +403,14 @@ void uninit_libretro_sym(void) lib_handle = NULL; #endif + if (g_extern.system.core_options) + { + core_option_flush(g_extern.system.core_options); + core_option_free(g_extern.system.core_options); + } + // No longer valid. - memset(&g_extern.system.info, 0, sizeof(g_extern.system.info)); - memset(&g_extern.system.av_info, 0, sizeof(g_extern.system.av_info)); - memset(&g_extern.frame_cache, 0, sizeof(g_extern.frame_cache)); - memset(&g_extern.system.disk_control, 0, sizeof(g_extern.system.disk_control)); - g_extern.system.pix_fmt = RETRO_PIXEL_FORMAT_0RGB1555; - g_extern.system.no_game = false; - g_extern.system.shutdown = false; - g_extern.system.key_event = NULL; + memset(&g_extern.system, 0, sizeof(g_extern.system)); } #ifdef NEED_DYNAMIC diff --git a/general.h b/general.h index ae8dc028bb..3b065af8a2 100644 --- a/general.h +++ b/general.h @@ -379,7 +379,6 @@ struct global struct retro_hw_render_callback hw_render_callback; core_option_manager_t *core_options; - } system; struct diff --git a/retroarch.c b/retroarch.c index 551527c80d..814f5f43e3 100644 --- a/retroarch.c +++ b/retroarch.c @@ -3104,13 +3104,6 @@ void rarch_main_deinit(void) g_extern.rom_file_temporary = false; } - if (g_extern.system.core_options) - { - core_option_flush(g_extern.system.core_options); - core_option_free(g_extern.system.core_options); - } - g_extern.system.core_options = NULL; - g_extern.main_is_init = false; }