diff options
author | Thomas Martitz <kugel@rockbox.org> | 2011-08-23 18:43:17 +0000 |
---|---|---|
committer | Thomas Martitz <kugel@rockbox.org> | 2011-08-23 18:43:17 +0000 |
commit | 9d4cd7c0bd7b2aabf578a66dd70eb9929e9ec2a3 (patch) | |
tree | 29204649147c159ced9abbc26f0f953cdd019ff3 /apps | |
parent | 4d903f27c3b4efaa917e7959433330160040e5d4 (diff) | |
download | rockbox-9d4cd7c0bd7b2aabf578a66dd70eb9929e9ec2a3.tar.gz rockbox-9d4cd7c0bd7b2aabf578a66dd70eb9929e9ec2a3.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/trunk@30342 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-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 | { |