]> granicus.if.org Git - imagemagick/blobdiff - magick/quantum.c
(no commit message)
[imagemagick] / magick / quantum.c
index fec235a26108783cf0ecd6166de22272545df7cb..3b8754b5a3f2168794caab15504021d372675ea9 100644 (file)
@@ -103,8 +103,8 @@ static void
 %
 */
 
-static inline unsigned long MagickMax(const unsigned long x,
-  const unsigned long y)
+static inline size_t MagickMax(const size_t x,
+  const size_t y)
 {
   if (x > y)
     return(x);
@@ -120,7 +120,7 @@ MagickExport QuantumInfo *AcquireQuantumInfo(const ImageInfo *image_info,
   QuantumInfo
     *quantum_info;
 
-  quantum_info=(QuantumInfo *) AcquireAlignedMemory(1,sizeof(*quantum_info));
+  quantum_info=(QuantumInfo *) AcquireMagickMemory(sizeof(*quantum_info));
   if (quantum_info == (QuantumInfo *) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
   quantum_info->signature=MagickSignature;
@@ -161,7 +161,7 @@ MagickExport QuantumInfo *AcquireQuantumInfo(const ImageInfo *image_info,
 static MagickBooleanType AcquireQuantumPixels(QuantumInfo *quantum_info,
   const size_t extent)
 {
-  register long
+  register ssize_t
     i;
 
   assert(quantum_info != (QuantumInfo *) NULL);
@@ -173,8 +173,8 @@ static MagickBooleanType AcquireQuantumPixels(QuantumInfo *quantum_info,
     return(MagickFalse);
   quantum_info->extent=extent;
   (void) ResetMagickMemory(quantum_info->pixels,0,
-    sizeof(*quantum_info->pixels));
-  for (i=0; i < (long) quantum_info->number_threads; i++)
+    quantum_info->number_threads*sizeof(*quantum_info->pixels));
+  for (i=0; i < (ssize_t) quantum_info->number_threads; i++)
   {
     quantum_info->pixels[i]=(unsigned char *) AcquireQuantumMemory(extent+1,
       sizeof(**quantum_info->pixels));
@@ -247,21 +247,26 @@ MagickExport QuantumInfo *DestroyQuantumInfo(QuantumInfo *quantum_info)
 */
 static void DestroyQuantumPixels(QuantumInfo *quantum_info)
 {
-  register long
+  register ssize_t
     i;
 
+  ssize_t
+    extent;
+
   assert(quantum_info != (QuantumInfo *) NULL);
   assert(quantum_info->signature == MagickSignature);
   assert(quantum_info->pixels != (unsigned char **) NULL);
-  for (i=0; i < (long) quantum_info->number_threads; i++)
-  {
-    /*
-      Did we overrun our quantum buffer?
-    */
-    assert(quantum_info->pixels[i][quantum_info->extent] == QuantumSignature);
-    quantum_info->pixels[i]=(unsigned char *) RelinquishMagickMemory(
-      quantum_info->pixels[i]);
-  }
+  extent=(ssize_t) quantum_info->extent;
+  for (i=0; i < (ssize_t) quantum_info->number_threads; i++)
+    if (quantum_info->pixels[i] != (unsigned char *) NULL)
+      {
+        /*
+          Did we overrun our quantum buffer?
+        */
+        assert(quantum_info->pixels[i][extent] == QuantumSignature);
+        quantum_info->pixels[i]=(unsigned char *) RelinquishMagickMemory(
+          quantum_info->pixels[i]);
+      }
   quantum_info->pixels=(unsigned char **) RelinquishMagickMemory(
     quantum_info->pixels);
 }
@@ -308,9 +313,10 @@ MagickExport size_t GetQuantumExtent(const Image *image,
     case GrayAlphaQuantum: packet_size=2; break;
     case IndexAlphaQuantum: packet_size=2; break;
     case RGBQuantum: packet_size=3; break;
+    case BGRQuantum: packet_size=3; break;
     case RGBAQuantum: packet_size=4; break;
-    case BGRAQuantum: packet_size=4; break;
     case RGBOQuantum: packet_size=4; break;
+    case BGRAQuantum: packet_size=4; break;
     case CMYKQuantum: packet_size=4; break;
     case CMYKAQuantum: packet_size=5; break;
     default: break;
@@ -362,7 +368,7 @@ MagickExport void GetQuantumInfo(const ImageInfo *image_info,
     return;
   option=GetImageOption(image_info,"quantum:format");
   if (option != (char *) NULL)
-    quantum_info->format=(QuantumFormatType) ParseMagickOption(
+    quantum_info->format=(QuantumFormatType) ParseCommandOption(
       MagickQuantumFormatOptions,MagickFalse,option);
   option=GetImageOption(image_info,"quantum:minimum");
   if (option != (char *) NULL)
@@ -415,12 +421,11 @@ MagickExport void GetQuantumInfo(const ImageInfo *image_info,
 */
 MagickExport unsigned char *GetQuantumPixels(const QuantumInfo *quantum_info)
 {
-  long
-    id;
+  const int
+    id = GetOpenMPThreadId();
 
   assert(quantum_info != (QuantumInfo *) NULL);
   assert(quantum_info->signature == MagickSignature);
-  id=GetOpenMPThreadId();
   return(quantum_info->pixels[id]);
 }
 \f
@@ -529,7 +534,7 @@ MagickExport void SetQuantumAlphaType(QuantumInfo *quantum_info,
 %  The format of the SetQuantumDepth method is:
 %
 %      MagickBooleanType SetQuantumDepth(const Image *image,
-%        QuantumInfo *quantum_info,const unsigned long depth)
+%        QuantumInfo *quantum_info,const size_t depth)
 %
 %  A description of each parameter follows:
 %
@@ -541,7 +546,7 @@ MagickExport void SetQuantumAlphaType(QuantumInfo *quantum_info,
 %
 */
 MagickExport MagickBooleanType SetQuantumDepth(const Image *image,
-  QuantumInfo *quantum_info,const unsigned long depth)
+  QuantumInfo *quantum_info,const size_t depth)
 {
   MagickBooleanType
     status;
@@ -730,7 +735,7 @@ MagickExport void SetQuantumPack(QuantumInfo *quantum_info,
 %  The format of the SetQuantumPad method is:
 %
 %      MagickBooleanType SetQuantumPad(const Image *image,
-%        QuantumInfo *quantum_info,const unsigned long pad)
+%        QuantumInfo *quantum_info,const size_t pad)
 %
 %  A description of each parameter follows:
 %
@@ -742,7 +747,7 @@ MagickExport void SetQuantumPack(QuantumInfo *quantum_info,
 %
 */
 MagickExport MagickBooleanType SetQuantumPad(const Image *image,
-  QuantumInfo *quantum_info,const unsigned long pad)
+  QuantumInfo *quantum_info,const size_t pad)
 {
   assert(image != (Image *) NULL);
   assert(image->signature == MagickSignature);
@@ -803,7 +808,7 @@ MagickExport void SetQuantumMinIsWhite(QuantumInfo *quantum_info,
 %  The format of the SetQuantumQuantum method is:
 %
 %      void SetQuantumQuantum(QuantumInfo *quantum_info,
-%        const unsigned long quantum)
+%        const size_t quantum)
 %
 %  A description of each parameter follows:
 %
@@ -813,7 +818,7 @@ MagickExport void SetQuantumMinIsWhite(QuantumInfo *quantum_info,
 %
 */
 MagickExport void SetQuantumQuantum(QuantumInfo *quantum_info,
-  const unsigned long quantum)
+  const size_t quantum)
 {
   assert(quantum_info != (QuantumInfo *) NULL);
   assert(quantum_info->signature == MagickSignature);