g_data_runloop - turn it into a pointer

This commit is contained in:
twinaphex 2015-03-20 18:54:03 +01:00
parent 1481c09402
commit c287b03841

View File

@ -109,11 +109,11 @@ typedef struct data_runloop
#endif #endif
} data_runloop_t; } data_runloop_t;
struct data_runloop g_data_runloop; static struct data_runloop *g_data_runloop;
static void *rarch_main_data_get_ptr(void) static void *rarch_main_data_get_ptr(void)
{ {
return &g_data_runloop; return g_data_runloop;
} }
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
@ -784,7 +784,7 @@ void rarch_main_data_deinit(void)
{ {
data_runloop_t *data_runloop = rarch_main_data_get_ptr(); data_runloop_t *data_runloop = rarch_main_data_get_ptr();
if (!data_runloop || !data_runloop->inited) if (!data_runloop)
return; return;
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
@ -796,6 +796,7 @@ void rarch_main_data_deinit(void)
#endif #endif
data_runloop->inited = false; data_runloop->inited = false;
} }
static void data_runloop_iterate(bool is_thread, data_runloop_t *runloop) static void data_runloop_iterate(bool is_thread, data_runloop_t *runloop)
@ -892,13 +893,12 @@ void rarch_main_data_iterate(void)
data_runloop_iterate(false, data_runloop); data_runloop_iterate(false, data_runloop);
} }
static void rarch_main_data_init(void) static data_runloop_t *rarch_main_data_init(void)
{ {
data_runloop_t *data_runloop = rarch_main_data_get_ptr(); data_runloop_t *data_runloop = (data_runloop_t*)calloc(1, sizeof(data_runloop_t));
if (!data_runloop || data_runloop->inited)
return;
memset(data_runloop, 0, sizeof(*data_runloop)); if (!data_runloop)
return NULL;
#ifdef HAVE_THREADS #ifdef HAVE_THREADS
data_runloop->thread_inited = false; data_runloop->thread_inited = false;
@ -906,12 +906,14 @@ static void rarch_main_data_init(void)
#endif #endif
data_runloop->inited = true; data_runloop->inited = true;
return data_runloop;
} }
void rarch_main_data_clear_state(void) void rarch_main_data_clear_state(void)
{ {
rarch_main_data_deinit(); rarch_main_data_deinit();
rarch_main_data_init(); g_data_runloop = rarch_main_data_init();
} }