From 155d6a23b9daf5291a2a0d2e0e4b13690b13bdcf Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 10 Sep 2017 22:57:26 +0200 Subject: [PATCH] Start using menu_displaylist_info_free --- menu/cbs/menu_cbs_deferred_push.c | 1 + menu/cbs/menu_cbs_info.c | 10 +++++++-- menu/drivers/menu_generic.c | 2 ++ menu/drivers/nuklear.c | 10 +++++++-- menu/drivers/xmb.c | 31 ++++++++++----------------- menu/drivers/zarch.c | 14 +++++++++--- menu/menu_setting.c | 3 +++ menu/widgets/menu_input_bind_dialog.c | 3 ++- 8 files changed, 46 insertions(+), 28 deletions(-) diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 155fa43f3d..e0d4416db0 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -55,6 +55,7 @@ static int deferred_push_dlist(menu_displaylist_info_t *info, enum menu_displayl if (!menu_displaylist_ctl(state, info)) return menu_cbs_exit(); menu_displaylist_process(info); + menu_displaylist_info_free(info); return 0; } diff --git a/menu/cbs/menu_cbs_info.c b/menu/cbs/menu_cbs_info.c index 0afd4a7b36..213ac38d60 100644 --- a/menu/cbs/menu_cbs_info.c +++ b/menu/cbs/menu_cbs_info.c @@ -46,12 +46,18 @@ static int action_info_default(unsigned type, const char *label) sizeof(info.label)); if (!menu_displaylist_ctl(DISPLAYLIST_HELP, &info)) - return -1; + goto error; if (!menu_displaylist_process(&info)) - return -1; + goto error; + + menu_displaylist_info_free(&info); return 0; + +error: + menu_displaylist_info_free(&info); + return -1; } #ifdef HAVE_CHEEVOS diff --git a/menu/drivers/menu_generic.c b/menu/drivers/menu_generic.c index cf915f65cf..ce8a61e5d4 100644 --- a/menu/drivers/menu_generic.c +++ b/menu/drivers/menu_generic.c @@ -280,5 +280,7 @@ bool generic_menu_init_list(void *data) if (menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info)) menu_displaylist_process(&info); + menu_displaylist_info_free(&info); + return true; } diff --git a/menu/drivers/nuklear.c b/menu/drivers/nuklear.c index d87f5e4c8b..433944c768 100644 --- a/menu/drivers/nuklear.c +++ b/menu/drivers/nuklear.c @@ -458,10 +458,12 @@ static void nk_menu_context_destroy(void *data) in the menu driver so I didn't touch them */ static bool nk_menu_init_list(void *data) { - menu_displaylist_info_t info = {0}; + menu_displaylist_info_t info; file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); + menu_displaylist_info_init(&info); + strlcpy(info.label, msg_hash_to_str(MENU_ENUM_LABEL_HISTORY_TAB), sizeof(info.label)); info.enum_idx = MENU_ENUM_LABEL_HISTORY_TAB; @@ -476,10 +478,14 @@ static bool nk_menu_init_list(void *data) if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, &info)) { + bool ret = false; info.need_push = true; - return menu_displaylist_process(&info); + ret = menu_displaylist_process(&info); + menu_displaylist_info_free(&info); + return ret; } + menu_displaylist_info_free(&info); return false; } diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 4cca65b7a7..79db7b80c7 100755 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1881,6 +1881,7 @@ static void xmb_init_horizontal_list(xmb_handle_t *xmb) for (i=0; i < xmb->horizontal_list->size; i++) xmb_node_allocate_userdata(xmb, (unsigned)i); menu_displaylist_process(&info); + menu_displaylist_info_free(&info); } } } @@ -4191,6 +4192,7 @@ static int deferred_push_content_actions(menu_displaylist_info_t *info) DISPLAYLIST_HORIZONTAL_CONTENT_ACTIONS, info)) return -1; menu_displaylist_process(info); + menu_displaylist_info_free(info); return 0; } @@ -4357,30 +4359,14 @@ static bool xmb_menu_init_list(void *data) file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); - info.need_sort = false; - info.need_refresh = false; - info.need_entries_refresh = false; - info.need_push = false; - info.push_builtin_cores = false; - info.download_core = false; - info.need_clear = false; - info.need_navigation_clear = false; - info.list = NULL; - info.menu_list = NULL; - info.path[0] = '\0'; - info.path_b[0] = '\0'; - info.path_c[0] = '\0'; + menu_displaylist_info_init(&info); + strlcpy(info.label, msg_hash_to_str(MENU_ENUM_LABEL_MAIN_MENU), sizeof(info.label)); - info.label_hash = 0; strlcpy(info.exts, file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT), sizeof(info.exts)); - info.type = 0; info.type_default = FILE_TYPE_PLAIN; - info.directory_ptr = 0; - info.flags = 0; info.enum_idx = MENU_ENUM_LABEL_MAIN_MENU; - info.setting = NULL; menu_entries_append_enum(menu_stack, info.path, info.label, @@ -4390,14 +4376,19 @@ static bool xmb_menu_init_list(void *data) info.list = selection_buf; if (!menu_displaylist_ctl(DISPLAYLIST_MAIN_MENU, &info)) - return false; + goto error; info.need_push = true; if (!menu_displaylist_process(&info)) - return false; + goto error; + menu_displaylist_info_free(&info); return true; + +error: + menu_displaylist_info_free(&info); + return false; } static int xmb_pointer_tap(void *userdata, diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 2417e35e43..9ee54f4097 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -1124,16 +1124,19 @@ static int zarch_iterate(void *data, void *userdata, enum menu_action action) static bool zarch_menu_init_list(void *data) { - menu_displaylist_info_t info = {0}; + menu_displaylist_info_t info; file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); + menu_displaylist_info_free(&info); + strlcpy(info.label, msg_hash_to_str(MENU_ENUM_LABEL_HISTORY_TAB), sizeof(info.label)); info.enum_idx = MENU_ENUM_LABEL_HISTORY_TAB; menu_entries_append_enum(menu_stack, - info.path, info.label, MENU_ENUM_LABEL_HISTORY_TAB, info.type, info.flags, 0); + info.path, info.label, + MENU_ENUM_LABEL_HISTORY_TAB, info.type, info.flags, 0); command_event(CMD_EVENT_HISTORY_INIT, NULL); @@ -1141,10 +1144,15 @@ static bool zarch_menu_init_list(void *data) if (menu_displaylist_ctl(DISPLAYLIST_HISTORY, &info)) { + bool ret = false; info.need_push = true; - return menu_displaylist_process(&info); + ret = menu_displaylist_process(&info); + menu_displaylist_info_free(&info); + return ret; } + menu_displaylist_info_free(&info); + return false; } diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 107bc074ab..727f92e04c 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -777,6 +777,8 @@ int menu_action_handle_setting(rarch_setting_t *setting, if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info)) menu_displaylist_process(&info); + + menu_displaylist_info_free(&info); } /* fall-through. */ case ST_BOOL: @@ -1679,6 +1681,7 @@ void general_write_handler(void *data) if (menu_displaylist_ctl(DISPLAYLIST_GENERIC, &info)) menu_displaylist_process(&info); + menu_displaylist_info_free(&info); setting_set_with_string_representation(setting, "false"); } break; diff --git a/menu/widgets/menu_input_bind_dialog.c b/menu/widgets/menu_input_bind_dialog.c index 312570c83e..025e94166f 100644 --- a/menu/widgets/menu_input_bind_dialog.c +++ b/menu/widgets/menu_input_bind_dialog.c @@ -112,9 +112,9 @@ static int menu_input_key_bind_set_mode_common( info.enum_idx = MENU_ENUM_LABEL_CUSTOM_BIND; strlcpy(info.label, msg_hash_to_str(MENU_ENUM_LABEL_CUSTOM_BIND), sizeof(info.label)); - if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info)) menu_displaylist_process(&info); + menu_displaylist_info_free(&info); break; case MENU_INPUT_BINDS_CTL_BIND_ALL: menu_input_binds.target = &input_config_binds[index_offset][0]; @@ -131,6 +131,7 @@ static int menu_input_key_bind_set_mode_common( if (menu_displaylist_ctl(DISPLAYLIST_INFO, &info)) menu_displaylist_process(&info); + menu_displaylist_info_free(&info); break; default: case MENU_INPUT_BINDS_CTL_BIND_NONE: