summaryrefslogtreecommitdiffstats
path: root/apps/gui
diff options
context:
space:
mode:
authorMagnus Holmgren <magnushol@gmail.com>2010-08-11 19:01:50 +0000
committerMagnus Holmgren <magnushol@gmail.com>2010-08-11 19:01:50 +0000
commit113764d9c0dad33beab8ece9a9073c8648bd9da6 (patch)
tree3411fcb376adcbcb15ec3dc37bc95bb698af7ace /apps/gui
parentde44ae7efcf907c8aa52475a7c0dd9f0da22045e (diff)
downloadrockbox-113764d9c0dad33beab8ece9a9073c8648bd9da6.tar.gz
rockbox-113764d9c0dad33beab8ece9a9073c8648bd9da6.zip
Fix FS#11175. playlist_peek() wasn't thread safe (due to a static filename buffer), so frequent calls from the main thread would cause the audio thread to buffer the wrong track.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27773 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/skin_engine/skin_display.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c
index b5b9b4d7a6..83fea8c73c 100644
--- a/apps/gui/skin_engine/skin_display.c
+++ b/apps/gui/skin_engine/skin_display.c
@@ -218,7 +218,7 @@ void draw_playlist_viewer_list(struct gui_wps *gwps, struct playlistviewer *view
int x, length, alignment = SKIN_TOKEN_ALIGN_LEFT;
struct mp3entry *pid3;
- char buf[MAX_PATH*2], tempbuf[MAX_PATH];
+ char buf[MAX_PATH*2], tempbuf[MAX_PATH], filename_buf[MAX_PATH + 1];
const char *filename;
#if CONFIG_TUNER
if (current_screen() == GO_TO_FM)
@@ -249,7 +249,8 @@ void draw_playlist_viewer_list(struct gui_wps *gwps, struct playlistviewer *view
else
#endif
{
- filename = playlist_peek(i-cur_pos);
+ filename = playlist_peek(i-cur_pos, filename_buf,
+ sizeof(filename_buf));
if (i == cur_pos)
{
pid3 = state->id3;