diff --git a/dynamic.c b/dynamic.c index b043e70b41..644b464643 100644 --- a/dynamic.c +++ b/dynamic.c @@ -533,7 +533,8 @@ void uninit_libretro_sym(void) /* No longer valid. */ free(system->special); free(system->ports); - memset(&global->system, 0, sizeof(global->system)); + + rarch_system_info_clear(); driver->camera_active = false; driver->location_active = false; diff --git a/retroarch.c b/retroarch.c index 582c3e225e..57f2bc5507 100644 --- a/retroarch.c +++ b/retroarch.c @@ -317,12 +317,16 @@ static void set_special_paths(char **argv, unsigned num_content) sizeof(settings->system_directory)); } +rarch_system_info_t g_system; + rarch_system_info_t *rarch_system_info_get_ptr(void) { - global_t *global = global_get_ptr(); - if (!global) - return NULL; - return &global->system; + return &g_system; +} + +void rarch_system_info_clear(void) +{ + memset(&g_system, 0, sizeof(g_system)); } void set_paths_redirect(const char *path) diff --git a/runloop.h b/runloop.h index a8c4744a60..75877b9205 100644 --- a/runloop.h +++ b/runloop.h @@ -150,8 +150,6 @@ typedef struct global unsigned windowed_scale; } pending; - rarch_system_info_t system; - #ifdef HAVE_MENU struct { diff --git a/system.h b/system.h index 47525b6071..4beb2dec99 100644 --- a/system.h +++ b/system.h @@ -59,6 +59,8 @@ typedef struct rarch_system_info rarch_system_info_t *rarch_system_info_get_ptr(void); +void rarch_system_info_clear(void); + #ifdef __cplusplus } #endif