diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 54ba28628e..d51d60f632 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -55,6 +55,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) menu_handle_t *menu = menu_driver_get_ptr(); menu_list_t *menu_list = menu_list_get_ptr(); menu_navigation_t *nav = menu_navigation_get_ptr(); + global_t *global = global_get_ptr(); switch (type) { @@ -74,6 +75,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) info->path, info->label, info->type, info->flags); break; case DISPLAYLIST_CORES: + case DISPLAYLIST_CORES_DETECTED: ret = menu_entries_parse_list(info->list, info->menu_list, info->path, info->label, info->type, info->type_default, info->exts, NULL); diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 4103e19bbe..41fe737365 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -30,6 +30,7 @@ enum DISPLAYLIST_MAIN_MENU, DISPLAYLIST_SETTINGS, DISPLAYLIST_CORES, + DISPLAYLIST_CORES_DETECTED, DISPLAYLIST_PERFCOUNTER_SELECTION, DISPLAYLIST_PERFCOUNTERS_CORE, DISPLAYLIST_PERFCOUNTERS_FRONTEND, diff --git a/menu/menu_entries_cbs_deferred_push.c b/menu/menu_entries_cbs_deferred_push.c index cecc88bb88..8a3d361236 100644 --- a/menu/menu_entries_cbs_deferred_push.c +++ b/menu/menu_entries_cbs_deferred_push.c @@ -2043,12 +2043,20 @@ static int deferred_push_content_history_path(void *data, void *userdata, static int deferred_push_detect_core_list(void *data, void *userdata, const char *path, const char *label, unsigned type) { + menu_displaylist_info_t info = {0}; global_t *global = global_get_ptr(); - return menu_entries_parse_list((file_list_t*)data, (file_list_t*)userdata, path, label, type, - MENU_FILE_PLAIN, - global->core_info ? core_info_list_get_all_extensions( - global->core_info) : "", NULL); + info.list = (file_list_t*)data; + info.menu_list = (file_list_t*)userdata; + info.type = type; + info.type_default = MENU_FILE_PLAIN; + if (global->core_info) + strlcpy(info.exts, core_info_list_get_all_extensions( + global->core_info), sizeof(info.exts)); + strlcpy(info.path, path, sizeof(info.path)); + strlcpy(info.label, label, sizeof(info.label)); + + return menu_displaylist_push_list(&info, DISPLAYLIST_CORES_DETECTED); } static int deferred_push_default(void *data, void *userdata,