Turn core_info_current into static local variable

This commit is contained in:
twinaphex 2015-12-11 13:28:23 +01:00
parent 65eeb3d836
commit 23f1bf63c0
5 changed files with 22 additions and 25 deletions

View File

@ -851,8 +851,9 @@ static void event_main_state(unsigned cmd)
static bool event_update_system_info(struct retro_system_info *_info, static bool event_update_system_info(struct retro_system_info *_info,
bool *load_no_content) bool *load_no_content)
{ {
settings_t *settings = config_get_ptr(); core_info_t *core_info = NULL;
global_t *global = global_get_ptr(); settings_t *settings = config_get_ptr();
global_t *global = global_get_ptr();
#if defined(HAVE_DYNAMIC) #if defined(HAVE_DYNAMIC)
if (!(*settings->libretro)) if (!(*settings->libretro))
@ -864,8 +865,10 @@ static bool event_update_system_info(struct retro_system_info *_info,
if (!global->core_info.list) if (!global->core_info.list)
return false; return false;
runloop_ctl(RUNLOOP_CTL_CURRENT_CORE_GET, &core_info);
if (!core_info_list_get_info(global->core_info.list, if (!core_info_list_get_info(global->core_info.list,
global->core_info.current, settings->libretro)) core_info, settings->libretro))
return false; return false;
return true; return true;

View File

@ -672,7 +672,10 @@ static int zarch_zui_render_lay_root_load(zui_t *zui, zui_tabbed_t *tabbed)
if (!zui->load_dlist) 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); dir_list_sort(zui->load_dlist, true);
zui->load_dlist_first = 0; zui->load_dlist_first = 0;
} }

View File

@ -161,7 +161,9 @@ static int menu_displaylist_parse_core_info(menu_displaylist_info_t *info)
char tmp[PATH_MAX_LENGTH]; char tmp[PATH_MAX_LENGTH];
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
global_t *global = global_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) if (!core_info || !core_info->config_data)
{ {

View File

@ -478,6 +478,7 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
static slock_t *runloop_msg_queue_lock = NULL; static slock_t *runloop_msg_queue_lock = NULL;
#endif #endif
static core_info_t *core_info_current = NULL;
settings_t *settings = config_get_ptr(); settings_t *settings = config_get_ptr();
switch (state) switch (state)
@ -522,32 +523,21 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
case RUNLOOP_CTL_HAS_CORE_OPTIONS: case RUNLOOP_CTL_HAS_CORE_OPTIONS:
return runloop_system.core_options; return runloop_system.core_options;
case RUNLOOP_CTL_CURRENT_CORE_FREE: case RUNLOOP_CTL_CURRENT_CORE_FREE:
{ if (core_info_current)
global_t *global = global_get_ptr(); free(core_info_current);
if (!global) core_info_current = NULL;
return false;
if (global->core_info.current)
free(global->core_info.current);
global->core_info.current = NULL;
}
return true; return true;
case RUNLOOP_CTL_CURRENT_CORE_INIT: case RUNLOOP_CTL_CURRENT_CORE_INIT:
{ core_info_current = (core_info_t*)calloc(1, sizeof(core_info_t));
global_t *global = global_get_ptr(); if (!core_info_current)
if (!global) return false;
return false;
global->core_info.current = (core_info_t*)calloc(1, sizeof(core_info_t));
if (!global->core_info.current)
return false;
}
return true; return true;
case RUNLOOP_CTL_CURRENT_CORE_GET: case RUNLOOP_CTL_CURRENT_CORE_GET:
{ {
global_t *global = global_get_ptr();
core_info_t **core = (core_info_t**)data; core_info_t **core = (core_info_t**)data;
if (!core || !global) if (!core)
return false; return false;
*core = global->core_info.current; *core = core_info_current;
} }
return true; return true;
case RUNLOOP_CTL_SYSTEM_INFO_GET: case RUNLOOP_CTL_SYSTEM_INFO_GET:

View File

@ -157,7 +157,6 @@ typedef struct global
struct struct
{ {
core_info_list_t *list; core_info_list_t *list;
core_info_t *current;
} core_info; } core_info;
uint32_t content_crc; uint32_t content_crc;