diff --git a/menu/menu.c b/menu/menu.c index 01a218b4a7..5c16891bbb 100644 --- a/menu/menu.c +++ b/menu/menu.c @@ -251,11 +251,7 @@ void menu_free(menu_handle_t *menu) content_playlist_free(menu->playlist); menu->playlist = NULL; -#ifdef HAVE_SHADER_MANAGER - if (menu->shader) - free(menu->shader); - menu->shader = NULL; -#endif + menu_shader_free(menu); menu_driver_free(menu); diff --git a/menu/menu_shader.c b/menu/menu_shader.c index a1e5e82656..a6efd182de 100644 --- a/menu/menu_shader.c +++ b/menu/menu_shader.c @@ -346,3 +346,12 @@ void menu_shader_manager_apply_changes(void) menu_shader_manager_set_preset(NULL, shader_type, NULL); #endif } + +void menu_shader_free(menu_handle_t *menu) +{ +#ifdef HAVE_SHADER_MANAGER + if (menu->shader) + free(menu->shader); + menu->shader = NULL; +#endif +} diff --git a/menu/menu_shader.h b/menu/menu_shader.h index 991441d53b..6ab6aebdc6 100644 --- a/menu/menu_shader.h +++ b/menu/menu_shader.h @@ -70,6 +70,8 @@ unsigned menu_shader_manager_get_type( **/ void menu_shader_manager_apply_changes(void); +void menu_shader_free(menu_handle_t *menu); + #ifdef __cplusplus } #endif