diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c index a76b0de45d..1b90051ed3 100644 --- a/menu/menu_entries_cbs.c +++ b/menu/menu_entries_cbs.c @@ -130,11 +130,9 @@ int cb_core_updater_download(void *data, size_t len) } #endif -int menu_entries_common_is_settings_entry(const char *label) +int menu_entries_common_is_settings_entry(uint32_t label_hash) { - uint32_t hash = djb2_calculate(label); - - switch (hash) + switch (label_hash) { case MENU_LABEL_DRIVER_SETTINGS: case MENU_LABEL_CORE_SETTINGS: diff --git a/menu/menu_entries_cbs.h b/menu/menu_entries_cbs.h index 88fa052df4..46fcc9bac6 100644 --- a/menu/menu_entries_cbs.h +++ b/menu/menu_entries_cbs.h @@ -45,7 +45,7 @@ int action_right_cheat(unsigned type, const char *label, void menu_entries_common_load_content(bool persist); -int menu_entries_common_is_settings_entry(const char *label); +int menu_entries_common_is_settings_entry(uint32_t label_hash); int menu_entries_cbs_init_bind_left(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx, diff --git a/menu/menu_entries_cbs_deferred_push.c b/menu/menu_entries_cbs_deferred_push.c index 64724159a2..4f06b73065 100644 --- a/menu/menu_entries_cbs_deferred_push.c +++ b/menu/menu_entries_cbs_deferred_push.c @@ -645,7 +645,7 @@ int menu_entries_cbs_init_bind_deferred_push(menu_file_list_cbs_t *cbs, if ((strlen(elem1) != 0) && !!strcmp(elem0, elem1)) { - if (menu_entries_common_is_settings_entry(elem0)) + if (menu_entries_common_is_settings_entry(label_hash)) { if (!settings->menu.collapse_subgroups_enable) { diff --git a/menu/menu_entries_cbs_left.c b/menu/menu_entries_cbs_left.c index ee00caa964..cbb19f3c5b 100644 --- a/menu/menu_entries_cbs_left.c +++ b/menu/menu_entries_cbs_left.c @@ -350,7 +350,7 @@ static int menu_entries_cbs_init_bind_left_compare_label(menu_file_list_cbs_t *c if (label) { - if (menu_entries_common_is_settings_entry(elem0)) + if (menu_entries_common_is_settings_entry(label_hash)) { cbs->action_left = action_left_scroll; return 0; diff --git a/menu/menu_entries_cbs_right.c b/menu/menu_entries_cbs_right.c index a06b23846a..616ebed433 100644 --- a/menu/menu_entries_cbs_right.c +++ b/menu/menu_entries_cbs_right.c @@ -422,7 +422,7 @@ static int menu_entries_cbs_init_bind_right_compare_label(menu_file_list_cbs_t * if (label) { - if (menu_entries_common_is_settings_entry(elem0)) + if (menu_entries_common_is_settings_entry(label_hash)) { cbs->action_right = action_right_scroll; return 0; diff --git a/menu/menu_entries_cbs_title.c b/menu/menu_entries_cbs_title.c index 9d5bffcadd..1ed56d099e 100644 --- a/menu/menu_entries_cbs_title.c +++ b/menu/menu_entries_cbs_title.c @@ -70,11 +70,13 @@ static int action_get_title_default(const char *path, const char *label, string_list_free(list_path); } + hash = djb2_calculate(label); + #if 0 RARCH_LOG("label %s, elem0 %s, elem1 %s\n", label, elem0, elem1); #endif - if (menu_entries_common_is_settings_entry(label) == 1) + if (menu_entries_common_is_settings_entry(hash) == 1) { strlcpy(s, string_to_upper(elem0), len); if (elem1[0] != '\0') @@ -84,8 +86,6 @@ static int action_get_title_default(const char *path, const char *label, } return 0; } - - hash = djb2_calculate(label); switch (hash) {