From 36b420ec171c912ce52aeafd9cf8aff1079914de Mon Sep 17 00:00:00 2001 From: twinaphex Date: Thu, 11 Feb 2016 07:20:04 +0100 Subject: [PATCH] Revert "Remove core_info_list_num_info_files" This reverts commit 9d96e9e452859dc0b236e4f59af675ecbbb5cc53. --- core_info.c | 29 ++++++++++++++++++++--------- core_info.h | 2 ++ menu/drivers/materialui.c | 3 +-- menu/menu_displaylist.c | 2 +- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/core_info.c b/core_info.c index 486b7ecc86..f0a721e416 100644 --- a/core_info.c +++ b/core_info.c @@ -207,8 +207,8 @@ void core_info_get_name(const char *path, char *s, size_t len) if (!core_info) goto error; - core_info_list->list = core_info; - core_info_list->count = 0; + core_info_list->list = core_info; + core_info_list->count = contents->size; for (i = 0; i < contents->size; i++) { @@ -231,13 +231,6 @@ void core_info_get_name(const char *path, char *s, size_t len) strlcpy(s, core_info[i].core_name, len); } - for (i = 0; i < contents->size; i++) - { - config_file_t *conf = (config_file_t*) - core_info_list->list[i].config_data; - core_info_list->count += !!conf; - } - error: if (contents) dir_list_free(contents); @@ -353,6 +346,24 @@ error: return NULL; } + +size_t core_info_list_num_info_files(core_info_list_t *core_info_list) +{ + size_t i, num = 0; + + if (!core_info_list) + return 0; + + for (i = 0; i < core_info_list->count; i++) + { + config_file_t *conf = (config_file_t*) + core_info_list->list[i].config_data; + num += !!conf; + } + + return num; +} + bool core_info_list_get_display_name(core_info_list_t *core_info_list, const char *path, char *s, size_t len) { diff --git a/core_info.h b/core_info.h index e6abaa3b0b..3478e4a688 100644 --- a/core_info.h +++ b/core_info.h @@ -96,6 +96,8 @@ typedef struct core_info_ctx_find const char *path; } core_info_ctx_find_t; +size_t core_info_list_num_info_files(core_info_list_t *list); + /* Non-reentrant, does not allocate. Returns pointer to internal state. */ void core_info_list_get_supported_cores(core_info_list_t *list, const char *path, const core_info_t **infos, size_t *num_infos); diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 97f5e6ed29..4b3b8767a6 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1375,8 +1375,7 @@ static int mui_list_push(void *data, void *userdata, MENU_SETTING_ACTION, 0, 0); core_info_ctl(CORE_INFO_CTL_LIST_GET, &list); - - if (list->count > 0) + if (core_info_list_num_info_files(list)) { menu_entries_push(info->list, menu_hash_to_str(MENU_LABEL_VALUE_DETECT_CORE_LIST), diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index f280b3936a..3f8a90ea24 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2960,7 +2960,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) menu_hash_to_str(MENU_LABEL_LOAD_CONTENT), MENU_SETTING_ACTION, 0, 0); - if (list->count > 0) + if (core_info_list_num_info_files(list)) { menu_entries_push(info->list, menu_hash_to_str(MENU_LABEL_VALUE_DETECT_CORE_LIST),