summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrandon Low <lostlogic@rockbox.org>2007-11-08 15:52:10 +0000
committerBrandon Low <lostlogic@rockbox.org>2007-11-08 15:52:10 +0000
commit1db42433795af7a6d3eebbb8748d4a8d33088b26 (patch)
tree4012c066b7fe28d3bd6d5ae357aa24e2d45df075
parentda8f854d611f14f6975ac77e118a0e332a8a9f4e (diff)
downloadrockbox-1db42433795af7a6d3eebbb8748d4a8d33088b26.tar.gz
rockbox-1db42433795af7a6d3eebbb8748d4a8d33088b26.zip
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
-rw-r--r--apps/buffering.c14
1 files changed, 6 insertions, 8 deletions
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)