From 1db42433795af7a6d3eebbb8748d4a8d33088b26 Mon Sep 17 00:00:00 2001 From: Brandon Low Date: Thu, 8 Nov 2007 15:52:10 +0000 Subject: Change in function should be nearly zero, but change to proper naming and define use and allow a more liberal limit on bufgetdata to only ensure safety of wrapping, not the strict filechunk limit that I tried to impose earlier git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15535 a1c6a512-1295-4272-9138-f99709370657 --- apps/buffering.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'apps') diff --git a/apps/buffering.c b/apps/buffering.c index 1d1fca15ab..655e5cfdaf 100644 --- a/apps/buffering.c +++ b/apps/buffering.c @@ -975,7 +975,7 @@ int bufadvance(int handle_id, off_t offset) * does not check the validity of the input handle. It does do range checks * on size and returns a valid (and explicit) amount of data for reading */ static struct memory_handle *prep_bufdata(int handle_id, size_t *size, - bool filechunk_limit) + bool guardbuf_limit) { struct memory_handle *h = find_handle(handle_id); if (!h) @@ -990,14 +990,12 @@ static struct memory_handle *prep_bufdata(int handle_id, size_t *size, if (*size == 0 || *size > avail + h->filerem) *size = avail + h->filerem; - if (filechunk_limit && - h->type == TYPE_PACKET_AUDIO && *size > BUFFERING_DEFAULT_FILECHUNK) + if (guardbuf_limit && h->type == TYPE_PACKET_AUDIO && *size > GUARD_BUFSIZE) { - logf("data request > filechunk"); - /* If more than a filechunk is requested, provide no more than the - amount of data on buffer or one file chunk, but without increasing - "size", which would be bad. */ - *size = MIN(*size, MAX(avail, BUFFERING_DEFAULT_FILECHUNK)); + logf("data request > guardbuf"); + /* If more than the size of the guardbuf is requested and this is a + * bufgetdata, limit to guard_bufsize over the end of the buffer */ + *size = MIN(*size, buffer_len - h->ridx + GUARD_BUFSIZE); } if (h->filerem > 0 && avail < *size) -- cgit v1.2.3