From a914aed05adaa0ced56dd1bbafbaf3fb9300c0b0 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 20 Mar 2011 15:25:06 +0100 Subject: [PATCH] Fixed cUnbufferedFile::Seek() in case it is compiled without USE_FADVISE --- CONTRIBUTORS | 3 +++ HISTORY | 2 ++ tools.c | 7 ++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index b262a1e7..a237c9df 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2672,3 +2672,6 @@ Frank Neumann Gerald Dachs for reporting a problem with checking for minimum line length of 21 characters in the LIRC receiver code + +Juergen Lock + for fixing cUnbufferedFile::Seek() in case it is compiled without USE_FADVISE diff --git a/HISTORY b/HISTORY index cda79110..6c7863b4 100644 --- a/HISTORY +++ b/HISTORY @@ -6567,3 +6567,5 @@ Video Disk Recorder Revision History - Made updating the editing marks during replay react faster in case the marks file has just been written. - Fixed horizontal scaling of subtitles (reported by Reinhard Nissl). +- Fixed cUnbufferedFile::Seek() in case it is compiled without USE_FADVISE (thanks + to Juergen Lock). diff --git a/tools.c b/tools.c index d03595e6..a493529d 100644 --- a/tools.c +++ b/tools.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 2.12 2011/02/25 14:58:31 kls Exp $ + * $Id: tools.c 2.13 2011/03/20 15:20:00 kls Exp $ */ #include "tools.h" @@ -1575,9 +1575,9 @@ ssize_t cUnbufferedFile::Read(void *Data, size_t Size) cachedstart = min(cachedstart, curpos); #endif ssize_t bytesRead = safe_read(fd, Data, Size); -#ifdef USE_FADVISE if (bytesRead > 0) { curpos += bytesRead; +#ifdef USE_FADVISE cachedend = max(cachedend, curpos); // Read ahead: @@ -1597,8 +1597,9 @@ ssize_t cUnbufferedFile::Read(void *Data, size_t Size) } else ahead = curpos; // jumped -> we really don't want any readahead, otherwise e.g. fast-rewind gets in trouble. +#endif } - +#ifdef USE_FADVISE if (cachedstart < cachedend) { if (curpos - cachedstart > READCHUNK * 2) { // current position has moved forward enough, shrink tail window.