gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r23585 - Extractor/src/main


From: gnunet
Subject: [GNUnet-SVN] r23585 - Extractor/src/main
Date: Mon, 3 Sep 2012 16:06:39 +0200

Author: grothoff
Date: 2012-09-03 16:06:39 +0200 (Mon, 03 Sep 2012)
New Revision: 23585

Modified:
   Extractor/src/main/extractor_datasource.c
Log:
-simplify logic

Modified: Extractor/src/main/extractor_datasource.c
===================================================================
--- Extractor/src/main/extractor_datasource.c   2012-09-03 14:02:48 UTC (rev 
23584)
+++ Extractor/src/main/extractor_datasource.c   2012-09-03 14:06:39 UTC (rev 
23585)
@@ -320,16 +320,14 @@
 bfds_seek (struct BufferedFileDataSource *bfds, 
           int64_t pos, int whence)
 {
+  uint64_t npos;
+
   switch (whence)
     {
     case SEEK_CUR:
-      if (bfds->fpos + bfds->buffer_pos + pos < 0)
+      npos = bfds->fpos + bfds->buffer_pos + pos;
+      if (npos > bfds->fsize)
        {
-         LOG ("Invalid seek operation\n");
-         return -1;
-       }
-      if (bfds->fpos + bfds->buffer_pos + pos > bfds->fsize)
-       {
          LOG ("Invalid seek operation to %lld from %llu (max is %llu)\n",
               (long long) pos,
               bfds->fpos + bfds->buffer_pos,
@@ -341,15 +339,15 @@
             (bfds->buffer_pos + pos >= 0) ) )
        {
          bfds->buffer_pos += pos; 
-         return bfds->buffer_pos + bfds->fpos;
+         return npos;
        }
       if (0 != bfds_pick_next_buffer_at (bfds, 
-                                        bfds->fpos + bfds->buffer_pos + pos))
+                                        npos))
        {
          LOG ("seek operation failed\n");
          return -1;
        }
-      return bfds->fpos;
+      return npos;
     case SEEK_END:
       if (pos > 0)
        {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]