]> granicus.if.org Git - imagemagick/blobdiff - MagickCore/quantum-import.c
(no commit message)
[imagemagick] / MagickCore / quantum-import.c
index 406a7d7061faad6575ca524f81befc6f4e76ad95..32c2f685bef26e75886e1b05de7792c6cab1938c 100644 (file)
 %                 MagickCore Methods to Import Quantum Pixels                 %
 %                                                                             %
 %                             Software Design                                 %
-%                               John Cristy                                   %
+%                                  Cristy                                     %
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2013 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -92,7 +92,7 @@
 %
 %      size_t ImportQuantumPixels(const Image *image,CacheView *image_view,
 %        QuantumInfo *quantum_info,const QuantumType quantum_type,
-%        const unsigned char *pixels,ExceptionInfo *exception)
+%        const unsigned char *restrict pixels,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -121,7 +121,7 @@ static inline Quantum PushColormapIndex(const Image *image,const size_t index,
 }
 
 static inline const unsigned char *PushDoublePixel(QuantumInfo *quantum_info,
-  const unsigned char *pixels,double *pixel)
+  const unsigned char *restrict pixels,double *pixel)
 {
   double
     *p;
@@ -148,7 +148,7 @@ static inline const unsigned char *PushDoublePixel(QuantumInfo *quantum_info,
   quantum[7]=(*pixels++);
   quantum[6]=(*pixels++);
   quantum[5]=(*pixels++);
-  quantum[5]=(*pixels++);
+  quantum[4]=(*pixels++);
   quantum[3]=(*pixels++);
   quantum[2]=(*pixels++);
   quantum[1]=(*pixels++);
@@ -161,7 +161,7 @@ static inline const unsigned char *PushDoublePixel(QuantumInfo *quantum_info,
 }
 
 static inline const unsigned char *PushFloatPixel(QuantumInfo *quantum_info,
-  const unsigned char *pixels,float *pixel)
+  const unsigned char *restrict pixels,float *pixel)
 {
   float
     *p;
@@ -193,7 +193,7 @@ static inline const unsigned char *PushFloatPixel(QuantumInfo *quantum_info,
 }
 
 static inline const unsigned char *PushQuantumPixel(QuantumInfo *quantum_info,
-  const unsigned char *pixels,unsigned int *quantum)
+  const unsigned char *restrict pixels,unsigned int *quantum)
 {
   register ssize_t
     i;
@@ -222,7 +222,8 @@ static inline const unsigned char *PushQuantumPixel(QuantumInfo *quantum_info,
 }
 
 static inline const unsigned char *PushQuantumLongPixel(
-  QuantumInfo *quantum_info,const unsigned char *pixels,unsigned int *quantum)
+  QuantumInfo *quantum_info,const unsigned char *restrict pixels,
+  unsigned int *quantum)
 {
   register ssize_t
     i;
@@ -263,6 +264,8 @@ static void ImportAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -381,6 +384,8 @@ static void ImportBGRQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -687,6 +692,8 @@ static void ImportBGRAQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -1040,6 +1047,8 @@ static void ImportBlueQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -1155,6 +1164,8 @@ static void ImportCbYCrYQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 10:
@@ -1596,6 +1607,8 @@ static void ImportGrayQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 1:
@@ -1908,6 +1921,8 @@ static void ImportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 1:
@@ -1915,6 +1930,7 @@ static void ImportGrayAlphaQuantum(const Image *image,QuantumInfo *quantum_info,
       register unsigned char
         pixel;
 
+      bit=0;
       for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
       {
         for (bit=0; bit < 8; bit+=2)
@@ -2113,6 +2129,8 @@ static void ImportGreenQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -2654,6 +2672,8 @@ static void ImportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -2755,6 +2775,7 @@ static void ImportOpacityQuantum(const Image *image,QuantumInfo *quantum_info,
     }
   }
 }
+
 static void ImportRedQuantum(const Image *image,QuantumInfo *quantum_info,
   const MagickSizeType number_pixels,const unsigned char *restrict p,
   Quantum *restrict q,ExceptionInfo *exception)
@@ -2768,6 +2789,8 @@ static void ImportRedQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -2886,6 +2909,8 @@ static void ImportRGBQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -3192,6 +3217,8 @@ static void ImportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
   unsigned int
     pixel;
 
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickSignature);
   switch (quantum_info->depth)
   {
     case 8:
@@ -3413,7 +3440,7 @@ static void ImportRGBAQuantum(const Image *image,QuantumInfo *quantum_info,
 
 MagickExport size_t ImportQuantumPixels(const Image *image,
   CacheView *image_view,QuantumInfo *quantum_info,
-  const QuantumType quantum_type,const unsigned char *pixels,
+  const QuantumType quantum_type,const unsigned char *restrict pixels,
   ExceptionInfo *exception)
 {
   MagickSizeType
@@ -3604,7 +3631,7 @@ MagickExport size_t ImportQuantumPixels(const Image *image,
         register ssize_t
           i;
 
-        if (GetPixelMask(image,q) == 0)
+        if (GetPixelReadMask(image,q) == 0)
           {
             q+=GetPixelChannels(image);
             continue;