From 377d256ce974a28ab3f477831e112df0aabcf272 Mon Sep 17 00:00:00 2001 From: Andre Leiradella Date: Mon, 3 Sep 2018 22:51:07 +0100 Subject: [PATCH] Properly initialize cheevos_locals --- cheevos/cheevos.c | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/cheevos/cheevos.c b/cheevos/cheevos.c index 9288515254..e442957e77 100644 --- a/cheevos/cheevos.c +++ b/cheevos/cheevos.c @@ -144,7 +144,20 @@ typedef struct uint8_t reserve[8]; } cheevos_nes_header_t; -static cheevos_locals_t cheevos_locals; +static cheevos_locals_t cheevos_locals = +{ + NULL, /* task */ +#ifdef HAVE_THREADS + NULL, /* task_lock */ +#endif + true, /* core_supports */ + {0}, /* patchdata */ + NULL, /* core */ + NULL, /* unofficial */ + NULL, /* lboards */ + {0}, /* fixups */ + {0}, /* token */ +}; bool cheevos_loaded = false; bool cheevos_hardcore_active = false; @@ -712,7 +725,8 @@ void cheevos_populate_menu(void* data) menu_displaylist_info_t* info = (menu_displaylist_info_t*)data; cheevos_cheevo_t* cheevo = NULL; - if ( settings->bools.cheevos_enable && settings->bools.cheevos_hardcore_mode_enable + if ( settings->bools.cheevos_enable + && settings->bools.cheevos_hardcore_mode_enable && cheevos_loaded) { if (!cheevos_hardcore_paused) @@ -907,15 +921,15 @@ bool cheevos_unload(void) CHEEVOS_FREE(cheevos_locals.lboards); cheevos_free_patchdata(&cheevos_locals.patchdata); cheevos_fixup_destroy(&cheevos_locals.fixups); + + cheevos_locals.core = NULL; + cheevos_locals.unofficial = NULL; + cheevos_locals.lboards = NULL; + + cheevos_loaded = false; + cheevos_hardcore_paused = false; } - cheevos_locals.core = NULL; - cheevos_locals.unofficial = NULL; - cheevos_locals.lboards = NULL; - - cheevos_loaded = false; - cheevos_hardcore_paused = false; - return true; } @@ -927,7 +941,8 @@ bool cheevos_toggle_hardcore_mode(void) return false; /* reset and deinit rewind to avoid cheat the score */ - if (settings->bools.cheevos_hardcore_mode_enable && !cheevos_hardcore_paused) + if ( settings->bools.cheevos_hardcore_mode_enable + && !cheevos_hardcore_paused) { const char *msg = msg_hash_to_str( MSG_CHEEVOS_HARDCORE_MODE_ENABLE);