]> granicus.if.org Git - imagemagick/commitdiff
Moved the bytes in GetMagickByteBufferDatum to the start of the buffer instead.
authorDirk Lemstra <dirk@lemstra.org>
Thu, 18 Jul 2019 19:45:21 +0000 (21:45 +0200)
committerDirk Lemstra <dirk@lemstra.org>
Thu, 18 Jul 2019 19:45:21 +0000 (21:45 +0200)
coders/bytebuffer-private.h

index d3a01465cdee296ca2927ee7d7149d2cddfaa982..94eb6ab7ef10528eee5d11ba6e70a36e5150012b 100644 (file)
@@ -38,8 +38,9 @@ static inline int ReadMagickByteBuffer(MagickByteBuffer *buffer)
       if (buffer->count != (ssize_t) sizeof(buffer->data))
         return(EOF);
       buffer->offset=0;
+      buffer->count=0;
     }
-  if (buffer->offset == 0)
+  if ((buffer->offset == 0) && (buffer->count == 0))
     {
       buffer->count=ReadBlob(buffer->image,sizeof(buffer->data),buffer->data);
       if (buffer->count < 1)
@@ -53,13 +54,13 @@ static inline char *GetMagickByteBufferDatum(MagickByteBuffer *buffer)
   ssize_t
     i;
 
-  i=1;  /* Skip first to avoid reload of buffer */
+  i=0;
   while (buffer->offset < buffer->count)
     buffer->data[i++]=buffer->data[buffer->offset++];
   buffer->count=ReadBlob(buffer->image,sizeof(buffer->data)-i,buffer->data+i);
   buffer->count+=i;
-  buffer->offset=1;
-  return((char *) buffer->data+1);
+  buffer->offset=0;
+  return((char *) buffer->data);
 }
 
 static void CheckMagickByteBuffer(MagickByteBuffer *buffer,