diff options
author | Dave Chapman <dave@dchapman.com> | 2006-07-03 21:23:14 +0000 |
---|---|---|
committer | Dave Chapman <dave@dchapman.com> | 2006-07-03 21:23:14 +0000 |
commit | b1a272eee20cd3ca616432e81ca9adccc8f55e29 (patch) | |
tree | b4f75d97ffc2cc4627807ccb2816ec3737e49586 /apps/playback.c | |
parent | 9ad33fe4b0a871dcccb68f9548d994321cb25282 (diff) | |
download | rockbox-b1a272eee20cd3ca616432e81ca9adccc8f55e29.tar.gz rockbox-b1a272eee20cd3ca616432e81ca9adccc8f55e29.zip |
Patch by Mark Arigo to close bug report #5305 - fixes crashes when attempting to seek beyond the currently buffered data.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10181 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playback.c')
-rw-r--r-- | apps/playback.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/apps/playback.c b/apps/playback.c index ecfb93363e..4fc0c33921 100644 --- a/apps/playback.c +++ b/apps/playback.c | |||
@@ -1074,10 +1074,12 @@ static void rebuffer_and_seek(size_t newpos) | |||
1074 | last_peek_offset = 0; | 1074 | last_peek_offset = 0; |
1075 | initialize_buffer_fill(true); | 1075 | initialize_buffer_fill(true); |
1076 | 1076 | ||
1077 | if (newpos > AUDIO_REBUFFER_GUESS_SIZE) | 1077 | if (newpos > AUDIO_REBUFFER_GUESS_SIZE) { |
1078 | buf_ridx += AUDIO_REBUFFER_GUESS_SIZE; | ||
1078 | cur_ti->start_pos = newpos - AUDIO_REBUFFER_GUESS_SIZE; | 1079 | cur_ti->start_pos = newpos - AUDIO_REBUFFER_GUESS_SIZE; |
1079 | else | 1080 | } else { |
1080 | cur_ti->start_pos = 0; | 1081 | cur_ti->start_pos = 0; |
1082 | } | ||
1081 | 1083 | ||
1082 | cur_ti->filerem = cur_ti->filesize - cur_ti->start_pos; | 1084 | cur_ti->filerem = cur_ti->filesize - cur_ti->start_pos; |
1083 | cur_ti->available = 0; | 1085 | cur_ti->available = 0; |