diff options
author | Thomas Martitz <kugel@rockbox.org> | 2011-08-24 07:02:29 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2011-08-24 07:02:29 +0000 |
commit | bddea666f54a85eff2de51c109da18ed74c08230 (patch) | |
tree | 3de7f6656cfc7179b4838411a3b7ca8544050e15 /apps/radio/radioart.c | |
parent | ed0198a7c28a90f0693e156853b517463dcc4b83 (diff) | |
download | rockbox-bddea666f54a85eff2de51c109da18ed74c08230.tar.gz rockbox-bddea666f54a85eff2de51c109da18ed74c08230.zip |
Fix FS#12239, data abort after going from FMS to WPS.
The data abort was in find_handle() because current_handle was corrupted. This
most probably happened due to the FMS allocating Radio AA on the buffer without
resetting the buffer, corrupting buffering/playback state.
The fix is to grab buffer control explicitely.
r30308 isn't actually related, regardless of the task title.
git-svn-id: svn://svn.rockbox.org/rockbox/branches/v3_9@30343 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/radio/radioart.c')
-rw-r--r-- | apps/radio/radioart.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/radio/radioart.c b/apps/radio/radioart.c index e21b135342..4268272cdf 100644 --- a/apps/radio/radioart.c +++ b/apps/radio/radioart.c | |||
@@ -174,6 +174,12 @@ void radioart_init(bool entering_screen) | |||
174 | radioart[i].name[0] = '\0'; | 174 | radioart[i].name[0] = '\0'; |
175 | } | 175 | } |
176 | add_event(PLAYBACK_EVENT_START_PLAYBACK, true, playback_restarting_handler); | 176 | add_event(PLAYBACK_EVENT_START_PLAYBACK, true, playback_restarting_handler); |
177 | |||
178 | /* grab control over buffering */ | ||
179 | char* buf; | ||
180 | size_t bufsize; | ||
181 | buf = audio_get_buffer(false, &bufsize); | ||
182 | buffering_reset(buf, bufsize); | ||
177 | } | 183 | } |
178 | else | 184 | else |
179 | { | 185 | { |