From a9d322350b2818ab4f4e4e1a4c16fbb1bc9d28e2 Mon Sep 17 00:00:00 2001 From: Themaister Date: Tue, 7 May 2013 01:52:53 +0200 Subject: [PATCH] Clear out all of g_extern.system. Should clear out all the silly bugs where some interfaces are not cleared out on reentrancy. --- dynamic.c | 15 +++++++-------- general.h | 1 - retroarch.c | 7 ------- 3 files changed, 7 insertions(+), 16 deletions(-) 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; }