]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1763
authorCristy <urban-warrior@imagemagick.org>
Sun, 27 Oct 2019 16:55:59 +0000 (12:55 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 27 Oct 2019 16:55:59 +0000 (12:55 -0400)
MagickCore/quantum-import.c
MagickCore/quantum.h

index 99b298b8599108464e427066cf3b0ffea43d6ea1..ac255fdb3dcc287d1d42af758bba1048e9b0fd94 100644 (file)
@@ -139,20 +139,18 @@ static inline const unsigned char *PushDoublePixel(QuantumInfo *quantum_info,
       quantum[5]=(*pixels++);
       quantum[6]=(*pixels++);
       quantum[7]=(*pixels++);
-      p=(double *) quantum;
-      *pixel=(*p);
-      *pixel-=quantum_info->minimum;
-      *pixel*=quantum_info->scale;
-      return(pixels);
-    }
-  quantum[7]=(*pixels++);
-  quantum[6]=(*pixels++);
-  quantum[5]=(*pixels++);
-  quantum[4]=(*pixels++);
-  quantum[3]=(*pixels++);
-  quantum[2]=(*pixels++);
-  quantum[1]=(*pixels++);
-  quantum[0]=(*pixels++);
+    }
+  else
+    {
+      quantum[7]=(*pixels++);
+      quantum[6]=(*pixels++);
+      quantum[5]=(*pixels++);
+      quantum[4]=(*pixels++);
+      quantum[3]=(*pixels++);
+      quantum[2]=(*pixels++);
+      quantum[1]=(*pixels++);
+      quantum[0]=(*pixels++);
+    }
   p=(double *) quantum;
   *pixel=(*p);
   *pixel-=quantum_info->minimum;
@@ -176,20 +174,23 @@ static inline const unsigned char *PushQuantumFloatPixel(
       quantum[1]=(*pixels++);
       quantum[2]=(*pixels++);
       quantum[3]=(*pixels++);
-      p=(float *) quantum;
-      *pixel=(*p);
-      *pixel-=quantum_info->minimum;
-      *pixel*=(float) quantum_info->scale;
-      return(pixels);
-    }
-  quantum[3]=(*pixels++);
-  quantum[2]=(*pixels++);
-  quantum[1]=(*pixels++);
-  quantum[0]=(*pixels++);
+     }
+   else
+     {
+       quantum[3]=(*pixels++);
+       quantum[2]=(*pixels++);
+       quantum[1]=(*pixels++);
+       quantum[0]=(*pixels++);
+     }
   p=(float *) quantum;
   *pixel=(*p);
   *pixel-=quantum_info->minimum;
   *pixel*=(float) quantum_info->scale;
+  if (*pixel < FLT_MIN)
+    *pixel=FLT_MIN;
+  else
+    if (*pixel > FLT_MAX)
+      *pixel=FLT_MAX;
   return(pixels);
 }
 
index 34a66144698f4355baca8d9cae57f1369b64e4d1..b76617d55e3610a895598894e2f954e1781acabc 100644 (file)
@@ -82,20 +82,16 @@ typedef enum
 typedef struct _QuantumInfo
   QuantumInfo;
 
-static inline Quantum ClampToQuantum(const MagickRealType value)
+static inline Quantum ClampToQuantum(const MagickRealType quantum)
 {
 #if defined(MAGICKCORE_HDRI_SUPPORT)
-  if (value < DBL_MIN)
-    return((Quantum) DBL_MIN);
-  if (value > DBL_MAX)
-    return((Quantum) DBL_MAX);
-  return((Quantum) value);
+  return((Quantum) quantum);
 #else
-  if (value <= 0.0f)
+  if (quantum <= 0.0f)
     return((Quantum) 0);
   if (value >= (MagickRealType) QuantumRange)
     return(QuantumRange);
-  return((Quantum) (value+0.5f));
+  return((Quantum) (quantum+0.5f));
 #endif
 }