diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 287fc5662c..eaabacdbb6 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1195,11 +1195,10 @@ static void mui_preswitch_tabs(mui_handle_t *mui, unsigned action) } } -static void mui_list_cache(menu_list_type_t type, unsigned action) +static void mui_list_cache(void *data, menu_list_type_t type, unsigned action) { size_t list_size; - menu_handle_t *menu = menu_driver_get_ptr(); - mui_handle_t *mui = menu ? (mui_handle_t*)menu->userdata : NULL; + mui_handle_t *mui = (mui_handle_t*)data; if (!mui) return; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index bc153202fe..4464dc4090 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2399,19 +2399,13 @@ static void xmb_list_deep_copy(const file_list_t *src, file_list_t *dst) } } -static void xmb_list_cache(menu_list_type_t type, unsigned action) +static void xmb_list_cache(void *data, menu_list_type_t type, unsigned action) { size_t stack_size, list_size, selection; - xmb_handle_t *xmb = NULL; - menu_handle_t *menu = menu_driver_get_ptr(); + xmb_handle_t *xmb = (xmb_handle_t*)data; file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); - if (!menu) - return; - - xmb = (xmb_handle_t*)menu->userdata; - if (!xmb) return; if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection)) diff --git a/menu/menu_driver.c b/menu/menu_driver.c index db140beeaf..739cf64162 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -205,9 +205,10 @@ bool menu_driver_list_push(menu_displaylist_info_t *info, unsigned type) void menu_driver_list_cache(menu_list_type_t type, unsigned action) { const menu_ctx_driver_t *driver = menu_ctx_driver_get_ptr(); + menu_handle_t *menu = menu_driver_get_ptr(); if (driver->list_cache) - driver->list_cache(type, action); + driver->list_cache(menu->userdata, type, action); } size_t menu_driver_list_get_size(menu_list_type_t type) diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 1197b0b30c..df0d3caa6e 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -271,7 +271,7 @@ typedef struct menu_ctx_driver void (*list_insert)(file_list_t *list, const char *, const char *, size_t); void (*list_free)(file_list_t *list, size_t, size_t); void (*list_clear)(file_list_t *list); - void (*list_cache)(menu_list_type_t, unsigned); + void (*list_cache)(void *data, menu_list_type_t, unsigned); int (*list_push)(menu_displaylist_info_t*, unsigned); size_t(*list_get_selection)(void *data); size_t(*list_get_size)(void *data, menu_list_type_t type);