From edfff8a5efb1bca75f8b49c3ad3dd151653d39c8 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Thu, 10 Feb 2011 10:26:07 +0000 Subject: audio_peek_track should copy the struct mp3entry instead of pointing directly into the buffer. Despite the dire warning, caller does in fact yield/sleep and its usage is too nonlocalized to control that reliably. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29275 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_tokens.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'apps/gui') diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c index ddc2221ce6..f455999b2a 100644 --- a/apps/gui/skin_engine/skin_tokens.c +++ b/apps/gui/skin_engine/skin_tokens.c @@ -563,17 +563,15 @@ static struct mp3entry* get_mp3entry_from_offset(int offset, char **filename) fname = playlist_peek(offset, filename_buf, sizeof(filename_buf)); *filename = (char*)fname; #if CONFIG_CODEC == SWCODEC -#if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE) static struct mp3entry tempid3; - if (tagcache_fill_tags(&tempid3, fname)) - { - pid3 = &tempid3; - } - else + if ( +#if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE) + tagcache_fill_tags(&tempid3, fname) || #endif + audio_peek_track(&tempid3, offset) + ) { - if (!audio_peek_track(&pid3, offset)) - pid3 = NULL; + pid3 = &tempid3; } #endif } -- cgit v1.2.3