apr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wr...@apache.org
Subject cvs commit: apr/file_io/win32 readwrite.c seek.c
Date Tue, 28 Aug 2001 01:56:09 GMT
wrowe       01/08/27 18:56:09

  Modified:    file_io/win32 readwrite.c seek.c
  Log:
    Found a very ugly reaction to using apr_file_seek(APR_CUR, -value) in
    conjuction with buffered reads.  Thank you for toggling that case Jeff,
    so I could shoot out this bug ;)
  
  Revision  Changes    Path
  1.61      +9 -6      apr/file_io/win32/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/readwrite.c,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- readwrite.c	2001/06/20 00:56:02	1.60
  +++ readwrite.c	2001/08/28 01:56:09	1.61
  @@ -159,7 +159,7 @@
   
   APR_DECLARE(apr_status_t) apr_file_read(apr_file_t *thefile, void *buf, apr_size_t *len)
   {
  -    apr_size_t rv;
  +    apr_status_t rv;
       DWORD bytes_read = 0;
   
       if (*len <= 0) {
  @@ -196,16 +196,19 @@
           rv = 0;
           while (rv == 0 && size > 0) {
               if (thefile->bufpos >= thefile->dataRead) {
  +                apr_size_t read;
                   rv = read_with_timeout(thefile, thefile->buffer, 
  -                                       APR_FILE_BUFSIZE, &thefile->dataRead);
  -                if (thefile->dataRead == 0) {
  +                                       APR_FILE_BUFSIZE, &read);
  +                if (read == 0) {
                       if (rv == APR_EOF)
                           thefile->eof_hit = TRUE;
                       break;
                   }
  -
  -                thefile->filePtr += thefile->dataRead;
  -                thefile->bufpos = 0;
  +                else {
  +                    thefile->dataRead = read;
  +                    thefile->filePtr += thefile->dataRead;
  +                    thefile->bufpos = 0;
  +                }
               }
   
               blocksize = size > thefile->dataRead - thefile->bufpos ? thefile->dataRead
- thefile->bufpos : size;
  
  
  
  1.20      +1 -1      apr/file_io/win32/seek.c
  
  Index: seek.c
  ===================================================================
  RCS file: /home/cvs/apr/file_io/win32/seek.c,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- seek.c	2001/07/31 19:51:34	1.19
  +++ seek.c	2001/08/28 01:56:09	1.20
  @@ -82,7 +82,7 @@
           else
               rc = APR_SUCCESS;
           if (rc == APR_SUCCESS)
  -            thefile->bufpos = thefile->dataRead = 0;
  +            thefile->eof_hit = thefile->bufpos = thefile->dataRead = 0;
       }
   
       return rc;
  
  
  

Mime
View raw message