summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/buffering.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/apps/buffering.c b/apps/buffering.c
index 624debc..f0a50c2 100644
--- a/apps/buffering.c
+++ b/apps/buffering.c
@@ -706,10 +706,11 @@ static void rebuffer_handle(int handle_id, size_t newpos)
LOGFQUEUE("buffering >| Q_RESET_HANDLE");
queue_send(&buffering_queue, Q_RESET_HANDLE, handle_id);
- /* There isn't enough space to rebuffer all of the track from its new
- offset, so we ask the user to free some */
- if (buffer_len - BUF_USED < h->filesize - newpos)
+ size_t next = (unsigned)((void *)h->next - (void *)buffer);
+ if (next - h->data < h->filesize - newpos)
{
+ /* There isn't enough space to rebuffer all of the track from its new
+ offset, so we ask the user to free some */
DEBUGF("rebuffer_handle: space is needed\n");
call_buffering_callbacks(EVENT_HANDLE_REBUFFER, handle_id);
}