Fix skin_engine.c Album Art never dealloc'd on theme change

Patch from forum user Chris_s

http://forums.rockbox.org/index.php/topic,52708.0.html

Change-Id: I29f8702ced300d1dc90dfa0e8baa609b9051903e
This commit is contained in:
William Wilgus 2019-02-07 05:30:11 -06:00
parent ed269affb5
commit 075108e34a
2 changed files with 8 additions and 0 deletions

View file

@ -39,6 +39,9 @@
#define FAILSAFENAME "rockbox_failsafe" #define FAILSAFENAME "rockbox_failsafe"
void skin_data_free_buflib_allocs(struct wps_data *wps_data); void skin_data_free_buflib_allocs(struct wps_data *wps_data);
#ifdef HAVE_ALBUMART
void playback_release_aa_slot(int slot);
#endif
char* wps_default_skin(enum screen_type screen); char* wps_default_skin(enum screen_type screen);
char* default_radio_skin(enum screen_type screen); char* default_radio_skin(enum screen_type screen);
static bool skins_initialised = false; static bool skins_initialised = false;
@ -169,6 +172,10 @@ void settings_apply_skins(void)
if (!first_run) if (!first_run)
{ {
skin_data_free_buflib_allocs(&skins[i][j].data); skin_data_free_buflib_allocs(&skins[i][j].data);
#ifdef HAVE_ALBUMART
if (skins[i][j].data.playback_aa_slot >= 0)
playback_release_aa_slot(skins[i][j].data.playback_aa_slot);
#endif
#ifdef HAVE_BACKDROP_IMAGE #ifdef HAVE_BACKDROP_IMAGE
if (skins[i][j].data.backdrop_id >= 0) if (skins[i][j].data.backdrop_id >= 0)
skin_backdrop_unload(skins[i][j].data.backdrop_id); skin_backdrop_unload(skins[i][j].data.backdrop_id);

View file

@ -675,6 +675,7 @@ Nathan Follens
Gergely Békési Gergely Békési
Stephane Doyon Stephane Doyon
Alex Wallis Alex Wallis
Christian Soffke
The libmad team The libmad team
The wavpack team The wavpack team