fix ByteStreamBuffer
authorBrian Armstrong <brian.armstrong@discordapp.com>
Tue, 25 Apr 2017 01:03:59 +0000 (18:03 -0700)
committerBrian Armstrong <brian.armstrong@discordapp.com>
Tue, 25 Apr 2017 01:07:47 +0000 (18:07 -0700)
modules/imgcodecs/src/loadsave.cpp

index 4ceccd1..6b15dbe 100644 (file)
@@ -70,21 +70,21 @@ protected:
                               std::ios_base::seekdir dir,
                               std::ios_base::openmode )
     {
-        // get absolute offset
-        off_type off = offset;
+        char* whence = eback();
         if (dir == std::ios_base::cur)
         {
-            off += gptr() - eback();
+            whence = gptr();
         }
         else if (dir == std::ios_base::end)
         {
-            off += egptr() - eback();
+            whence = egptr();
         }
+        char* to = whence + offset;
 
         // check limits
-        if (off >= (off_type)0 && off <= egptr() - eback())
+        if (to >= eback() && to <= egptr())
         {
-            setg(eback(), gptr() + off, egptr());
+            setg(eback(), to, egptr());
             return gptr() - eback();
         }