From a8aa78456cec3ffb292682c093e57bebf2293227 Mon Sep 17 00:00:00 2001 From: aliaspider Date: Tue, 11 Oct 2016 03:49:47 +0100 Subject: [PATCH] xmb: fix a crash. xmb_node_allocate_userdata needs to be called for the list since is generated with menu_entries_append_enum, which allocates action data for each items. those would be otherwise misinterpreted as nodes. --- menu/drivers/xmb.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index b69cf3383d..65ede63643 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1355,6 +1355,7 @@ static void xmb_context_destroy_horizontal_list(xmb_handle_t *xmb) static void xmb_init_horizontal_list(xmb_handle_t *xmb) { + size_t i; menu_displaylist_info_t info = {0}; settings_t *settings = config_get_ptr(); @@ -1378,7 +1379,11 @@ static void xmb_init_horizontal_list(xmb_handle_t *xmb) strlcpy(info.exts, "lpl", sizeof(info.exts)); if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info)) + { + for (i=0; i < xmb->horizontal_list->size; i++) + xmb_node_allocate_userdata(xmb, i); menu_displaylist_ctl(DISPLAYLIST_PROCESS, &info); + } } static void xmb_toggle_horizontal_list(xmb_handle_t *xmb)