]> granicus.if.org Git - imagemagick/commitdiff
Only move buffer when offset is not zero.
authorDirk Lemstra <dirk@lemstra.org>
Thu, 18 Jul 2019 20:24:26 +0000 (22:24 +0200)
committerDirk Lemstra <dirk@lemstra.org>
Thu, 18 Jul 2019 20:24:26 +0000 (22:24 +0200)
coders/bytebuffer-private.h

index 38b5467ba926a213839b680f54089690b613aafd..cc2bde8633ae1c5fa62830c314488ef3c46d2215 100644 (file)
@@ -42,7 +42,8 @@ static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer)
     }
   if ((buffer->offset == 0) && (buffer->count == 0))
     {
-      buffer->count=ReadBlob(buffer->image,sizeof(buffer->data)-1,buffer->data);
+      buffer->count=ReadBlob(buffer->image,sizeof(buffer->data)-1,
+        buffer->data);
       if (buffer->count < 1)
         return(EOF);
     }
@@ -55,14 +56,17 @@ static inline char *GetMagickByteBufferDatum(MagickByteBuffer *buffer)
     count,
     i;
 
-  i=0;
-  while (buffer->offset < buffer->count)
-    buffer->data[i++]=buffer->data[buffer->offset++];
-  count=ReadBlob(buffer->image,sizeof(buffer->data)-1-i,buffer->data+i);
-  buffer->count=i;
-  if (count > 0)
-    buffer->count+=count;
-  buffer->offset=0;
+  if (buffer->offset != 0)
+    {
+      i=0;
+      while (buffer->offset < buffer->count)
+        buffer->data[i++]=buffer->data[buffer->offset++];
+      count=ReadBlob(buffer->image,sizeof(buffer->data)-1-i,buffer->data+i);
+      buffer->count=i;
+      if (count > 0)
+        buffer->count+=count;
+      buffer->offset=0;
+    }
   return((char *) buffer->data);
 }