]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sat, 7 Apr 2018 16:32:12 +0000 (12:32 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sat, 7 Apr 2018 16:32:12 +0000 (12:32 -0400)
40 files changed:
coders/aai.c
coders/avs.c
coders/bgr.c
coders/bmp.c
coders/cmyk.c
coders/dcm.c
coders/debug.c
coders/fax.c
coders/flif.c
coders/gif.c
coders/gray.c
coders/icon.c
coders/info.c
coders/ipl.c
coders/jbig.c
coders/json.c
coders/mat.c
coders/miff.c
coders/mpc.c
coders/mtv.c
coders/palm.c
coders/pcl.c
coders/pcx.c
coders/pdf.c
coders/pix.c
coders/png.c
coders/pnm.c
coders/ps.c
coders/ps2.c
coders/ps3.c
coders/psd.c
coders/raw.c
coders/rgb.c
coders/sgi.c
coders/sun.c
coders/tiff.c
coders/txt.c
coders/viff.c
coders/ycbcr.c
coders/yuv.c

index ff380fa9b3d7ca9a9b499e8dd0a25943275e72e5..37e185fadd2eaee303f80d7c390efacdb0b6dc89 100644 (file)
@@ -341,6 +341,9 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image,
   register unsigned char
     *magick_restrict q;
 
+  size_t
+    imageListLength;
+
   ssize_t
     count,
     y;
@@ -363,6 +366,7 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -414,8 +418,7 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index b4ecb5eb601136e624871f865f08e3a6d6dd0cc1..43ec043d179221705f3e399061e882b905262eed 100644 (file)
@@ -343,6 +343,9 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image,
   register unsigned char
     *magick_restrict q;
 
+  size_t
+    imageListLength;
+
   ssize_t
     count,
     y;
@@ -365,6 +368,7 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -413,8 +417,7 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 30877529707a025d19c3efd8ee5ebcbf66e2c72c..aecfca4343f8e894f83dc30bfb67e69eaab7a68b 100644 (file)
@@ -1123,6 +1123,9 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
   size_t
     length;
 
+  size_t
+    imageListLength;
+
   ssize_t
     count,
     y;
@@ -1145,8 +1148,8 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
         Open output image file.
       */
       assert(exception != (ExceptionInfo *) NULL);
-  assert(exception->signature == MagickCoreSignature);
-  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
+      assert(exception->signature == MagickCoreSignature);
+      status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
       if (status == MagickFalse)
         return(status);
     }
@@ -1157,6 +1160,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
       image->alpha_trait=BlendPixelTrait;
     }
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1474,8 +1478,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 6a9912b6f86068baa67f2315392afcf3e9674c6b..e1f2c2b3e4e3e929350e562dea086327f5634440 100644 (file)
@@ -1615,6 +1615,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image,
 
   size_t
     bytes_per_line,
+    imageListLength,
     type;
 
   ssize_t
@@ -1644,13 +1645,11 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image,
   else
     if (LocaleCompare(image_info->magick,"BMP3") == 0)
       type=3;
-
   option=GetImageOption(image_info,"bmp:format");
   if (option != (char *) NULL)
     {
       (void) LogMagickEvent(CoderEvent,GetMagickModule(),
           "  Format=%s",option);
-
       if (LocaleCompare(option,"bmp2") == 0)
         type=2;
       if (LocaleCompare(option,"bmp3") == 0)
@@ -1658,8 +1657,8 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image,
       if (LocaleCompare(option,"bmp4") == 0)
         type=4;
     }
-
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -2345,8 +2344,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index cd14c076d3fc0238954558251bcf2054ad479e88..e3ef431a13e9899a3e92bf65370d24c196974344 100644 (file)
@@ -1227,6 +1227,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
     quantum_type;
 
   size_t
+    imageListLength,
     length;
 
   ssize_t
@@ -1255,6 +1256,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
         return(status);
     }
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1627,8 +1629,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 879304c793b0d20b8de849889b46c186dade86dd..38906649894656acbf3aeb8f2f7cc4455f2fcc77 100644 (file)
@@ -3491,7 +3491,7 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
             if (info.significant_bits > 8)
               info.bytes_per_pixel=2;
             info.depth=info.significant_bits;
-            if ((info.depth == 0) || (info.depth > 32))
+            if ((info.depth == 0) || (info.depth > 16))
               ThrowDCMException(CorruptImageError,"ImproperImageHeader");
             info.max_value=(1UL << info.significant_bits)-1;
             info.mask=(size_t) GetQuantumRange(info.significant_bits);
index a3340730a3760d1666e685b9a7fe262cefcef245..a2a038f5b02e097ac015bf294074a2382526ea5e 100644 (file)
@@ -187,6 +187,9 @@ static MagickBooleanType WriteDEBUGImage(const ImageInfo *image_info,
   register ssize_t
     x;
 
+  size_t
+    imageListLength;
+
   /*
     Open output image file.
   */
@@ -200,6 +203,7 @@ static MagickBooleanType WriteDEBUGImage(const ImageInfo *image_info,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     (void) CopyMagickString(colorspace,CommandOptionToMnemonic(
@@ -257,8 +261,7 @@ static MagickBooleanType WriteDEBUGImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index f7f44ca8d00dbba8814dc008b3008cb7521bc61c..c9f62291d373b08d8ea01927fee5f1f27353f44c 100644 (file)
@@ -362,6 +362,9 @@ static MagickBooleanType WriteFAXImage(const ImageInfo *image_info,Image *image,
   MagickOffsetType
     scene;
 
+  size_t
+    imageListLength;
+
   /*
     Open output image file.
   */
@@ -379,6 +382,7 @@ static MagickBooleanType WriteFAXImage(const ImageInfo *image_info,Image *image,
   write_info=CloneImageInfo(image_info);
   (void) CopyMagickString(write_info->magick,"FAX",MagickPathExtent);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -389,8 +393,7 @@ static MagickBooleanType WriteFAXImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (write_info->adjoin != MagickFalse);
index f7018c5581f4f911a930de250528b97a0cd2f147..5c0b770ed680a6eca1e477fe1281a523da3f718d 100644 (file)
@@ -409,6 +409,7 @@ static MagickBooleanType WriteFLIFImage(const ImageInfo *image_info,
 
   size_t
     columns,
+    imageListLength,
     length,
     rows;
 
@@ -469,7 +470,7 @@ static MagickBooleanType WriteFLIFImage(const ImageInfo *image_info,
       ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
     }
   scene=0;
-
+  imageListLength=GetImageListLength(image);
   do
   {
     for (y=0; y < (ssize_t) image->rows; y++)
@@ -525,12 +526,10 @@ static MagickBooleanType WriteFLIFImage(const ImageInfo *image_info,
         ThrowWriterException(ImageError,"FramesNotSameDimensions");
       }
     scene++;
-    status=SetImageProgress(image,SaveImagesTag,scene,GetImageListLength(
-      image));
+    status=SetImageProgress(image,SaveImagesTag,scene,imageListLength);
     if (status == MagickFalse)
        break;
   } while (image_info->adjoin != MagickFalse);
-
   flif_destroy_image(flifimage);
   pixels=RelinquishMagickMemory(pixels);
   flif_status=flif_encoder_encode_memory(flifenc,&buffer,&length);
index 6e421973b958d0ea84c1b13f1f3c61b39df68850..25aab913616c8821876d36c1693fe921bdecd5aa 100644 (file)
@@ -1522,6 +1522,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
   size_t
     bits_per_pixel,
     delay,
+    imageListLength,
     length,
     one;
 
@@ -1597,6 +1598,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
     write_info->interlace=NoInterlace;
   scene=0;
   one=1;
+  imageListLength=GetImageListLength(image);
   do
   {
     (void) TransformImageColorspace(image,sRGBColorspace,exception);
@@ -1924,8 +1926,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image,
       break;
     image=SyncNextImageInList(image);
     scene++;
-    status=SetImageProgress(image,SaveImagesTag,scene,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene,imageListLength);
     if (status == MagickFalse)
       break;
   } while (write_info->adjoin != MagickFalse);
index ec4f29945c9239ac8c177436d67e5143f59a4ed5..487a2ce966a3d461bf8f3464d8eb987a13ddb7d3 100644 (file)
@@ -824,6 +824,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
     quantum_type;
 
   size_t
+    imageListLength,
     length;
 
   ssize_t
@@ -855,6 +856,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
   if (LocaleCompare(image_info->magick,"GRAYA") == 0)
     quantum_type=GrayAlphaQuantum;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1070,8 +1072,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index a2268c8e9c1ea160cf5dba4d195d8eea46e19840..f7bb8a89a08d53385301b8e23da3d832ffdd9253 100644 (file)
@@ -901,6 +901,7 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info,
 
   size_t
     bytes_per_line,
+    imageListLength,
     scanline_pad;
 
   ssize_t
@@ -971,6 +972,7 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info,
   } while ((next != (Image *) NULL) && (image_info->adjoin != MagickFalse));
   scene=0;
   next=(images != (Image *) NULL) ? images : image;
+  imageListLength=GetImageListLength(image);
   do
   {
     if ((next->columns > 255L) && (next->rows > 255L) &&
@@ -1363,8 +1365,7 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info,
       }
     if (GetNextImageInList(next) == (Image *) NULL)
       break;
-    status=SetImageProgress(next,SaveImagesTag,scene++,
-      GetImageListLength(next));
+    status=SetImageProgress(next,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
     next=SyncNextImageInList(next);
index 17696bb41aac6c4ea8c9f65ca5d4edd68e9b9e91..fbeb5e2e120e35b0effc190be3e5820d8daff69f 100644 (file)
@@ -166,6 +166,9 @@ static MagickBooleanType WriteINFOImage(const ImageInfo *image_info,
   MagickOffsetType
     scene;
 
+  size_t
+    imageListLength;
+
   /*
     Open output image file.
   */
@@ -179,6 +182,7 @@ static MagickBooleanType WriteINFOImage(const ImageInfo *image_info,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     format=GetImageOption(image_info,"format");
@@ -207,8 +211,7 @@ static MagickBooleanType WriteINFOImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index e29dac7cd26ebb2b76f1e43501c9ccf62a603d7c..fe69900cc07a69f60db3b230c4065ba2ea2bf5e5 100644 (file)
@@ -523,6 +523,9 @@ static MagickBooleanType WriteIPLImage(const ImageInfo *image_info,Image *image,
   QuantumInfo
     *quantum_info;
 
+  size_t
+    imageListLength;
+
   ssize_t
     y;
   
@@ -579,7 +582,8 @@ static MagickBooleanType WriteIPLImage(const ImageInfo *image_info,Image *image,
     break;
     
   }
-  ipl_info.z = (unsigned int) GetImageListLength(image);
+  imageListLength=GetImageListLength(image);
+  ipl_info.z = (unsigned int) imageListLength;
   /* There is no current method for detecting whether we have T or Z stacks */
   ipl_info.time = 1;
   ipl_info.width = (unsigned int) image->columns;
@@ -679,8 +683,7 @@ static MagickBooleanType WriteIPLImage(const ImageInfo *image_info,Image *image,
   if (GetNextImageInList(image) == (Image *) NULL)
     break;
       image=SyncNextImageInList(image);
-      status=SetImageProgress(image,SaveImagesTag,scene++,
-        GetImageListLength(image));
+      status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
       if (status == MagickFalse)
         break;
     }while (image_info->adjoin != MagickFalse);
index e798723bf79cd687b416ce6fda86b4056537ea27..404680b481bdab932779975649de34595c805e31 100644 (file)
@@ -429,6 +429,7 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info,
     *q;
 
   size_t
+    imageListLength,
     number_packets;
 
   ssize_t
@@ -458,6 +459,7 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info,
     return(status);
   version=StringToDouble(JBG_VERSION,(char **) NULL);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -555,8 +557,7 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 332b93ee5d89ff0bf489349766783618e460a81e..d68aeaac5e0271919d78bf1b315da4601ce26568 100644 (file)
@@ -1691,6 +1691,9 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info,
   MagickOffsetType
     scene;
 
+  size_t
+    imageListLength;
+
   /*
     Open output image file.
   */
@@ -1707,6 +1710,7 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info,
   if (file == (FILE *) NULL)
     file=stdout;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     if (scene == 0)
@@ -1721,8 +1725,7 @@ static MagickBooleanType WriteJSONImage(const ImageInfo *image_info,
       }
     (void) WriteBlobString(image,",\n");
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 1cbb59696e77da43eb85e6c19a27610b9e350c0d..a1531bc4a5523c0db04059709b208fe036d70f6c 100644 (file)
@@ -1560,6 +1560,9 @@ static MagickBooleanType WriteMATImage(const ImageInfo *image_info,Image *image,
   MagickOffsetType
     scene;
 
+  size_t
+    imageListLength;
+
   struct tm
     local_time;
 
@@ -1599,6 +1602,7 @@ static MagickBooleanType WriteMATImage(const ImageInfo *image_info,Image *image,
   MATLAB_HDR[0x7F]='M';
   (void) WriteBlob(image,sizeof(MATLAB_HDR),(unsigned char *) MATLAB_HDR);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     char
@@ -1686,8 +1690,7 @@ static MagickBooleanType WriteMATImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 5c9e842f8dc9603fdef973bc4698f2b8f800b350..6ceb48746b3a50cbf171e0970dfb1eb66f99fffb 100644 (file)
@@ -2023,6 +2023,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
     i;
 
   size_t
+    imageListLength,
     length,
     packet_size;
 
@@ -2054,6 +2055,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -2769,8 +2771,7 @@ static MagickBooleanType WriteMIFFImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,GetImageListLength(
-      image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index d515003e5d038500d83546095ed1983663c33d00..b6e36763c053d5ba10b8a90812a7b0e50fa65cac 100644 (file)
@@ -1140,7 +1140,8 @@ static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image,
     i;
 
   size_t
-    depth;
+    depth,
+    imageListLength;
 
   /*
     Open persistent cache.
@@ -1160,6 +1161,7 @@ static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image,
   AppendImageFormat("cache",cache_filename);
   scene=0;
   offset=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1530,7 +1532,7 @@ static MagickBooleanType WriteMPCImage(const ImageInfo *image_info,Image *image,
     if (image->progress_monitor != (MagickProgressMonitor) NULL)
       {
         status=image->progress_monitor(SaveImagesTag,scene,
-          GetImageListLength(image),image->client_data);
+          imageListLength,image->client_data);
         if (status == MagickFalse)
           break;
       }
index ae3ebeef656c4c0491c1d731e7f4446daf21469b..04895567fa2a41b09f2b186b257d864e4618e962 100644 (file)
@@ -346,6 +346,9 @@ static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image,
   register unsigned char
     *q;
 
+  size_t
+    imageListLength;
+
   ssize_t
     y;
 
@@ -367,6 +370,7 @@ static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -409,8 +413,7 @@ static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene,imageListLength);
     if (status == MagickFalse)
       break;
     scene++;
index 3210cb61c1392929169b07907f53584ed66842a1..c7aa8b0ea8ee4fc28e021a2db606c2ab096ccade 100644 (file)
@@ -719,6 +719,7 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info,
     count,
     bits_per_pixel,
     bytes_per_row,
+    imageListLength,
     nextDepthOffset,
     one;
 
@@ -763,6 +764,7 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info,
   one=1;
   version=0;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     (void) TransformImageColorspace(image,sRGBColorspace,exception);
@@ -1022,8 +1024,7 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info,
     currentOffset=(MagickOffsetType) GetBlobSize(image);
     offset=SeekBlob(image,currentOffset,SEEK_SET);
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 088645b6e1d007a7a36ce700fb83e5c1eca0c683..421b460437cad186a100048f896ab0db31471674 100644 (file)
@@ -677,6 +677,7 @@ static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image,
 
   size_t
     density,
+    imageListLength,
     length,
     one,
     packets;
@@ -715,6 +716,7 @@ static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image,
     }
   scene=0;
   one=1;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -973,8 +975,7 @@ static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 0c4593bfcd706456a6817ee6487991e265a51f6f..80008e691ff0ba232c296832e60a5658fe764aca 100644 (file)
@@ -885,6 +885,7 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image,
     *q;
 
   size_t
+    imageListLength,
     length;
 
   ssize_t
@@ -928,6 +929,7 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image,
         (void) WriteBlobLSBLong(image,0x00000000L);
     }
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     if (page_table != (MagickOffsetType *) NULL)
@@ -1175,8 +1177,7 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 109196ba593b3979d59ce3abb009d982a5492d6f..c858836dd9e125dd4ea0948625b6931b1eb8049e 100644 (file)
@@ -1320,6 +1320,7 @@ RestoreMSCWarning
 
   size_t
     channels,
+    imageListLength,
     info_id,
     length,
     object,
@@ -1511,6 +1512,7 @@ RestoreMSCWarning
   (void) WriteBlobString(image,">>\n");
   (void) WriteBlobString(image,"endobj\n");
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     MagickBooleanType
@@ -2939,8 +2941,7 @@ RestoreMSCWarning
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 7c8a42065d222534b378befe0ab31b2a39cf7e5b..e0f43baadcce14e0be98512632c9b647b61d2fd3 100644 (file)
@@ -176,7 +176,13 @@ static Image *ReadPIXImage(const ImageInfo *image_info,ExceptionInfo *exception)
       {
         if (length == 0)
           {
-            length=(size_t) ReadBlobByte(image);
+            int
+              c;
+
+            c=ReadBlobByte(image);
+            if ((c == 0) || (c == EOF))
+              break;
+            length=(size_t) c;
             if (bits_per_pixel == 8)
               index=ScaleCharToQuantum((unsigned char) ReadBlobByte(image));
             else
@@ -194,6 +200,8 @@ static Image *ReadPIXImage(const ImageInfo *image_info,ExceptionInfo *exception)
         length--;
         q+=GetPixelChannels(image);
       }
+      if (x < (ssize_t) image->columns)
+        break;
       if (SyncAuthenticPixels(image,exception) == MagickFalse)
         break;
       if (image->previous == (Image *) NULL)
index 2cc4c38eef51c52f6ebe313f3d613e1b18af72c0..2d49cd232d71474aeee7652b98d1b77a8d6f768d 100644 (file)
@@ -13375,6 +13375,7 @@ static MagickBooleanType WriteMNGImage(const ImageInfo *image_info,
 
   size_t
     final_delay=0,
+    imageListLength,
     initial_delay;
 
 #if (PNG_LIBPNG_VER < 10200)
@@ -13988,6 +13989,7 @@ static MagickBooleanType WriteMNGImage(const ImageInfo *image_info,
     defined(PNG_MNG_FEATURES_SUPPORTED)
   mng_info->equal_palettes=MagickFalse;
 #endif
+  imageListLength=GetImageListLength(image);
   do
   {
     if (mng_info->adjoin)
@@ -14173,8 +14175,7 @@ static MagickBooleanType WriteMNGImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
 
     if (status == MagickFalse)
       break;
index d72e14d5324200ee0bba041fcbe1d55a2237d5ad..d3a5d092b6fff678439d32d70a734897252d756c 100644 (file)
@@ -1519,6 +1519,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
 
   size_t
     extent,
+    imageListLength,
     packet_size;
 
   ssize_t
@@ -1540,6 +1541,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     QuantumAny
@@ -2431,8 +2433,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 98f18746997361646127166d8814ff4406b4441e..f36f40056280a6ae641a584569252fa34a1c7924 100644 (file)
@@ -1552,6 +1552,7 @@ static MagickBooleanType WritePSImage(const ImageInfo *image_info,Image *image,
   size_t
     bit,
     byte,
+    imageListLength,
     length,
     page,
     text_size;
@@ -1586,6 +1587,7 @@ static MagickBooleanType WritePSImage(const ImageInfo *image_info,Image *image,
     compression=image_info->compression;
   page=1;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1742,9 +1744,9 @@ RestoreMSCWarning
             */
             (void) WriteBlobString(image,"%%Orientation: Portrait\n");
             (void) WriteBlobString(image,"%%PageOrder: Ascend\n");
-            (void) FormatLocaleString(buffer,MagickPathExtent,"%%%%Pages: %.20g\n",
-              image_info->adjoin != MagickFalse ? (double)
-              GetImageListLength(image) : 1.0);
+            (void) FormatLocaleString(buffer,MagickPathExtent,
+              "%%%%Pages: %.20g\n",image_info->adjoin != MagickFalse ?
+              (double) imageListLength : 1.0);
             (void) WriteBlobString(image,buffer);
           }
         (void) WriteBlobString(image,"%%EndComments\n");
@@ -2292,8 +2294,7 @@ RestoreMSCWarning
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 105e699561597440cab6f443ad99fb77c9e90259..a06066c3eacbaf8eab7c18d043c21f3c0d8a187a 100644 (file)
@@ -438,6 +438,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
     bounds;
 
   size_t
+    imageListLength,
     length,
     page,
     text_size;
@@ -487,6 +488,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
   (void) memset(&bounds,0,sizeof(bounds));
   page=1;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -606,7 +608,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
               (void) CopyMagickString(buffer,"%%Pages: 1\n",MagickPathExtent);
             else
               (void) FormatLocaleString(buffer,MagickPathExtent,
-                "%%%%Pages: %.20g\n",(double) GetImageListLength(image));
+                "%%%%Pages: %.20g\n",(double) imageListLength);
             (void) WriteBlobString(image,buffer);
           }
         if (image->colorspace == CMYKColorspace)
@@ -1118,8 +1120,7 @@ static MagickBooleanType WritePS2Image(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index b8d783269568b6b0cff83445da3c1a9c500b96e3..1a60d2422112f2e2ebe96ca6941e2626d9492bac 100644 (file)
@@ -866,6 +866,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
     bounds;
 
   size_t
+    imageListLength,
     length,
     page,
     pixel,
@@ -933,6 +934,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
   (void) memset(&bounds,0,sizeof(bounds));
   page=0;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1070,7 +1072,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
               (void) CopyMagickString(buffer,"%%Pages: 1\n",MagickPathExtent);
             else
               (void) FormatLocaleString(buffer,MagickPathExtent,
-                "%%%%Pages: %.20g\n",(double) GetImageListLength(image));
+                "%%%%Pages: %.20g\n",(double) imageListLength);
             (void) WriteBlobString(image,buffer);
           }
         if (image->colorspace == CMYKColorspace)
@@ -1600,8 +1602,7 @@ static MagickBooleanType WritePS3Image(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index f0c39d80bc65250e1b16d1bebd3418b3c6d1748f..424ccb124e8925f07252d2547ea8cbc06fd3e157 100644 (file)
@@ -2075,6 +2075,9 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
   register ssize_t
     i;
 
+  size_t
+    imageListLength;
+
   ssize_t
     count;
 
@@ -2321,10 +2324,11 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(CoderEvent,GetMagickModule(),
       "  reading the precombined layer");
-  if ((has_merged_image != MagickFalse) || (GetImageListLength(image) == 1))
+  imageListLength=GetImageListLength(image);
+  if ((has_merged_image != MagickFalse) || (imageListLength == 1))
     has_merged_image=(MagickBooleanType) ReadPSDMergedImage(image_info,image,
       &psd_info,exception);
-  if ((has_merged_image == MagickFalse) && (GetImageListLength(image) == 1) &&
+  if ((has_merged_image == MagickFalse) && (imageListLength == 1) &&
       (length != 0))
     {
       SeekBlob(image,offset,SEEK_SET);
@@ -2344,7 +2348,7 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
       Image
         *merged;
 
-      if (GetImageListLength(image) == 1)
+      if (imageListLength == 1)
         {
           if (profile != (StringInfo *) NULL)
             profile=DestroyStringInfo(profile);
index b7b4e39c248bc81c3986e7d134799d90a9b8f3f4..446c525c539a775eda47c1a7c726d378f1e91a3a 100644 (file)
@@ -465,6 +465,7 @@ static MagickBooleanType WriteRAWImage(const ImageInfo *image_info,Image *image,
     *p;
 
   size_t
+    imageListLength,
     length;
 
   ssize_t
@@ -565,6 +566,7 @@ static MagickBooleanType WriteRAWImage(const ImageInfo *image_info,Image *image,
     }
   }
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -596,8 +598,7 @@ static MagickBooleanType WriteRAWImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index f3dc377ec90489ea4f8465383238f7cde40ef8da..8e4c72a1063c3e3924e954d0ca2c5642746a0279 100644 (file)
@@ -1108,6 +1108,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
     quantum_type;
 
   size_t
+    imageListLength,
     length;
 
   ssize_t
@@ -1141,6 +1142,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
   if (LocaleCompare(image_info->magick,"RGBO") == 0)
     quantum_type=RGBOQuantum;
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1465,8 +1467,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 5660bbea910acb0682caefedf9a64b038bccb82e..142035d9f3361dd155434e48d171297c5da693b4 100644 (file)
@@ -927,6 +927,9 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
   register unsigned char
     *q;
 
+  size_t
+    imageListLength;
+
   ssize_t
     y,
     z;
@@ -952,6 +955,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1175,8 +1179,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index c78fbc0ae58f60e0de70af2ee03636af38b21b30..edf5a8397462b373fbc4cb4b11d97b0dfd4eb458 100644 (file)
@@ -795,6 +795,9 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image,
     i,
     x;
 
+  size_t
+    imageListLength;
+
   ssize_t
     y;
 
@@ -816,6 +819,7 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1028,8 +1032,7 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 589a87a013eb2420e3a43536160fa59f6539d387..38dcfe58746ae6d02063675b8e388d68c1aaf7ef 100644 (file)
@@ -3422,6 +3422,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
     i;
 
   size_t
+    imageListLength,
     length;
 
   ssize_t
@@ -3480,6 +3481,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
   debug=IsEventLogging();
   (void) debug;
   adjoin=image_info->adjoin;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -3944,12 +3946,12 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
         adjoin=MagickFalse;
       }
     if ((LocaleCompare(image_info->magick,"PTIF") != 0) &&
-        (adjoin != MagickFalse) && (GetImageListLength(image) > 1))
+        (adjoin != MagickFalse) && (imageListLength > 1))
       {
         (void) TIFFSetField(tiff,TIFFTAG_SUBFILETYPE,FILETYPE_PAGE);
         if (image->scene != 0)
           (void) TIFFSetField(tiff,TIFFTAG_PAGENUMBER,(uint16) image->scene,
-            GetImageListLength(image));
+            imageListLength);
       }
     if (image->orientation != UndefinedOrientation)
       (void) TIFFSetField(tiff,TIFFTAG_ORIENTATION,(uint16) image->orientation);
@@ -3960,7 +3962,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
         pages;
 
       page=(uint16) scene;
-      pages=(uint16) GetImageListLength(image);
+      pages=(uint16) imageListLength;
       if ((LocaleCompare(image_info->magick,"PTIF") != 0) &&
           (adjoin != MagickFalse) && (pages > 1))
         (void) TIFFSetField(tiff,TIFFTAG_SUBFILETYPE,FILETYPE_PAGE);
@@ -4231,8 +4233,7 @@ RestoreMSCWarning
     image=SyncNextImageInList(image);
     if (image == (Image *) NULL)
       break;
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (adjoin != MagickFalse);
index 4937a7b08675c6cec9aa165da6f06bd137075cc3..a87100f736610ccdabce76eb9ab05791992130e1 100644 (file)
@@ -729,6 +729,9 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image,
   register ssize_t
     x;
 
+  size_t
+    imageListLength;
+
   ssize_t
     y;
 
@@ -745,6 +748,7 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image,
   if (status == MagickFalse)
     return(status);
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     ComplianceType
@@ -857,8 +861,7 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index 64705645a7aacca2def1264428486c29bc294862..92809e4bc6eac7805c04c735e36080b532def28a 100644 (file)
@@ -961,6 +961,9 @@ static MagickBooleanType WriteVIFFImage(const ImageInfo *image_info,
   register unsigned char
     *q;
 
+  size_t
+    imageListLength;
+
   ssize_t
     y;
 
@@ -986,6 +989,7 @@ static MagickBooleanType WriteVIFFImage(const ImageInfo *image_info,
     return(status);
   (void) memset(&viff_info,0,sizeof(ViffInfo));
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1259,8 +1263,7 @@ RestoreMSCWarning
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index da6e238e0924a4c9a3e08fcf847ea4c7a64b56ea..1c323ef19ea9bf1d1265c1a20c98d2fb759d7dba 100644 (file)
@@ -1102,6 +1102,7 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info,
     *p;
 
   size_t
+    imageListLength,
     length;
 
   ssize_t
@@ -1138,6 +1139,7 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info,
       image->alpha_trait=BlendPixelTrait;
     }
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -1419,8 +1421,7 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
index df3d2b0eb95572e4c69953c4ac7830ab4f902e6a..8c6d79a8cd3636e16d4b864293727a329cf57139 100644 (file)
@@ -633,6 +633,7 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
 
   size_t
     height,
+    imageListLength,
     quantum,
     width;
 
@@ -692,6 +693,7 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
         return(status);
     }
   scene=0;
+  imageListLength=GetImageListLength(image);
   do
   {
     /*
@@ -882,8 +884,7 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image,
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,
-      GetImageListLength(image));
+    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);