diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index bf520d88fe..60957d8c3d 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1368,7 +1368,7 @@ static int mui_list_push(void *data, void *userdata, switch (type) { case DISPLAYLIST_LOAD_CONTENT_LIST: - menu_entries_clear(info->list); + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); menu_entries_push(info->list, menu_hash_to_str(MENU_LABEL_VALUE_LOAD_CONTENT), menu_hash_to_str(MENU_LABEL_LOAD_CONTENT), @@ -1393,7 +1393,7 @@ static int mui_list_push(void *data, void *userdata, ret = 0; break; case DISPLAYLIST_MAIN_MENU: - menu_entries_clear(info->list); + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); if (!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) { diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index b66bae50f2..1c04126423 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2731,7 +2731,7 @@ static int xmb_list_push(void *data, void *userdata, switch (type) { case DISPLAYLIST_MAIN_MENU: - menu_entries_clear(info->list); + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); if (!rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL)) { diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 83d346db68..bcd2f2a365 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2661,7 +2661,7 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) case DISPLAYLIST_CONTENT_HISTORY: case DISPLAYLIST_ARCHIVE_ACTION: case DISPLAYLIST_ARCHIVE_ACTION_DETECT_CORE: - menu_entries_clear(info->list); + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); break; } @@ -3496,7 +3496,7 @@ int menu_displaylist_push(file_list_t *list, file_list_t *menu_list) if (string_is_empty(settings->playlist_directory)) { - menu_entries_clear(info.list); + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info.list); menu_entries_push(info.list, menu_hash_to_str(MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE), menu_hash_to_str(MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE), diff --git a/menu/menu_entries.c b/menu/menu_entries.c index 1b1e310933..a2b565e2c4 100644 --- a/menu/menu_entries.c +++ b/menu/menu_entries.c @@ -233,9 +233,11 @@ static void menu_list_flush_stack(menu_list_t *list, } } -void menu_entries_clear(file_list_t *list) +static bool menu_entries_clear(file_list_t *list) { unsigned i; + if (!list) + return false; menu_driver_ctl(RARCH_MENU_CTL_LIST_CLEAR, list); @@ -244,6 +246,8 @@ void menu_entries_clear(file_list_t *list) if (list) file_list_clear(list); + + return true; } void menu_entries_set_alt_at_offset(file_list_t *list, size_t idx, @@ -723,6 +727,8 @@ bool menu_entries_ctl(enum menu_entries_ctl_state state, void *data) break; case MENU_ENTRIES_CTL_REFRESH: return menu_entries_refresh(data); + case MENU_ENTRIES_CTL_CLEAR: + return menu_entries_clear((file_list_t*)data); case MENU_ENTRIES_CTL_INIT: return menu_entries_init(); case MENU_ENTRIES_CTL_SHOW_BACK: diff --git a/menu/menu_entries.h b/menu/menu_entries.h index 6349eac7e4..93e07d77b0 100644 --- a/menu/menu_entries.h +++ b/menu/menu_entries.h @@ -120,6 +120,7 @@ enum menu_entries_ctl_state /* Returns the starting index of the menu entry list. */ MENU_ENTRIES_CTL_START_GET, MENU_ENTRIES_CTL_REFRESH, + MENU_ENTRIES_CTL_CLEAR, MENU_ENTRIES_CTL_SHOW_BACK }; @@ -167,8 +168,6 @@ void menu_entries_get_last(const file_list_t *list, const char **path, const char **label, unsigned *file_type, size_t *entry_idx); -void menu_entries_clear(file_list_t *list); - void menu_entries_set_alt_at_offset(file_list_t *list, size_t idx, const char *alt);