From 23f1bf63c0e7adcb87bc537408adaa0249eb9fd8 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 11 Dec 2015 13:28:23 +0100 Subject: [PATCH] Turn core_info_current into static local variable --- command_event.c | 9 ++++++--- menu/drivers/zarch.c | 5 ++++- menu/menu_displaylist.c | 4 +++- runloop.c | 28 +++++++++------------------- runloop.h | 1 - 5 files changed, 22 insertions(+), 25 deletions(-) diff --git a/command_event.c b/command_event.c index 82f6ca23c3..270c204aba 100644 --- a/command_event.c +++ b/command_event.c @@ -851,8 +851,9 @@ static void event_main_state(unsigned cmd) static bool event_update_system_info(struct retro_system_info *_info, bool *load_no_content) { - settings_t *settings = config_get_ptr(); - global_t *global = global_get_ptr(); + core_info_t *core_info = NULL; + settings_t *settings = config_get_ptr(); + global_t *global = global_get_ptr(); #if defined(HAVE_DYNAMIC) if (!(*settings->libretro)) @@ -864,8 +865,10 @@ static bool event_update_system_info(struct retro_system_info *_info, if (!global->core_info.list) return false; + runloop_ctl(RUNLOOP_CTL_CURRENT_CORE_GET, &core_info); + if (!core_info_list_get_info(global->core_info.list, - global->core_info.current, settings->libretro)) + core_info, settings->libretro)) return false; return true; diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 126ca87df8..6aa3464dad 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -672,7 +672,10 @@ static int zarch_zui_render_lay_root_load(zui_t *zui, zui_tabbed_t *tabbed) if (!zui->load_dlist) { - zui->load_dlist = dir_list_new(zui->load_cwd, global->core_info.current->supported_extensions, true, true); + core_info_t *core_info = NULL; + runloop_ctl(RUNLOOP_CTL_CURRENT_CORE_GET, &core_info); + + zui->load_dlist = dir_list_new(zui->load_cwd, core_info->supported_extensions, true, true); dir_list_sort(zui->load_dlist, true); zui->load_dlist_first = 0; } diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 612e7edf1f..02ad305735 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -161,7 +161,9 @@ static int menu_displaylist_parse_core_info(menu_displaylist_info_t *info) char tmp[PATH_MAX_LENGTH]; settings_t *settings = config_get_ptr(); global_t *global = global_get_ptr(); - core_info_t *core_info = global ? (core_info_t*)global->core_info.current : NULL; + core_info_t *core_info = NULL; + + runloop_ctl(RUNLOOP_CTL_CURRENT_CORE_GET, &core_info); if (!core_info || !core_info->config_data) { diff --git a/runloop.c b/runloop.c index 6e25f83a4e..5afbe03668 100644 --- a/runloop.c +++ b/runloop.c @@ -478,6 +478,7 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data) #ifdef HAVE_THREADS static slock_t *runloop_msg_queue_lock = NULL; #endif + static core_info_t *core_info_current = NULL; settings_t *settings = config_get_ptr(); switch (state) @@ -522,32 +523,21 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data) case RUNLOOP_CTL_HAS_CORE_OPTIONS: return runloop_system.core_options; case RUNLOOP_CTL_CURRENT_CORE_FREE: - { - global_t *global = global_get_ptr(); - if (!global) - return false; - if (global->core_info.current) - free(global->core_info.current); - global->core_info.current = NULL; - } + if (core_info_current) + free(core_info_current); + core_info_current = NULL; return true; case RUNLOOP_CTL_CURRENT_CORE_INIT: - { - global_t *global = global_get_ptr(); - if (!global) - return false; - global->core_info.current = (core_info_t*)calloc(1, sizeof(core_info_t)); - if (!global->core_info.current) - return false; - } + core_info_current = (core_info_t*)calloc(1, sizeof(core_info_t)); + if (!core_info_current) + return false; return true; case RUNLOOP_CTL_CURRENT_CORE_GET: { - global_t *global = global_get_ptr(); core_info_t **core = (core_info_t**)data; - if (!core || !global) + if (!core) return false; - *core = global->core_info.current; + *core = core_info_current; } return true; case RUNLOOP_CTL_SYSTEM_INFO_GET: diff --git a/runloop.h b/runloop.h index 211ae357c7..e2b960102c 100644 --- a/runloop.h +++ b/runloop.h @@ -157,7 +157,6 @@ typedef struct global struct { core_info_list_t *list; - core_info_t *current; } core_info; uint32_t content_crc;