Don't use menu_setting_find in menu_cbs_ok.c except for one place

This commit is contained in:
twinaphex 2015-08-17 19:52:24 +02:00
parent 6093253763
commit a4657461a6

View File

@ -1349,7 +1349,7 @@ static int action_ok_set_path(const char *path,
{ {
const char *menu_path = NULL; const char *menu_path = NULL;
const char *menu_label = NULL; const char *menu_label = NULL;
rarch_setting_t *setting = NULL; menu_file_list_cbs_t *cbs = NULL;
menu_list_t *menu_list = menu_list_get_ptr(); menu_list_t *menu_list = menu_list_get_ptr();
if (!menu_list) if (!menu_list)
@ -1357,15 +1357,13 @@ static int action_ok_set_path(const char *path,
menu_list_get_last_stack(menu_list, menu_list_get_last_stack(menu_list,
&menu_path, &menu_label, NULL, NULL); &menu_path, &menu_label, NULL, NULL);
cbs = menu_list_get_last_stack_actiondata(menu_list);
setting = menu_setting_find(menu_label); if (!cbs)
if (!setting)
return -1; return -1;
menu_action_setting_set_current_string_path(setting, menu_path, path); menu_action_setting_set_current_string_path(cbs->setting, menu_path, path);
menu_list_pop_stack_by_needle(menu_list, cbs->setting->name);
menu_list_pop_stack_by_needle(menu_list, setting->name);
return 0; return 0;
} }
@ -2057,7 +2055,6 @@ static int is_rdb_entry(uint32_t label_hash)
static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
const char *label, uint32_t hash, const char *elem0) const char *label, uint32_t hash, const char *elem0)
{ {
rarch_setting_t *setting = menu_setting_find(label);
uint32_t elem0_hash = menu_hash_calculate(elem0); uint32_t elem0_hash = menu_hash_calculate(elem0);
if (elem0[0] != '\0' && (is_rdb_entry(elem0_hash) == 0)) if (elem0[0] != '\0' && (is_rdb_entry(elem0_hash) == 0))
@ -2066,7 +2063,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
return 0; return 0;
} }
if (setting && setting->browser_selection_type == ST_DIR) if (cbs->setting && cbs->setting->browser_selection_type == ST_DIR)
{ {
cbs->action_ok = action_ok_push_generic_list; cbs->action_ok = action_ok_push_generic_list;
return 0; return 0;