]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1743
authorCristy <urban-warrior@imagemagick.org>
Fri, 11 Oct 2019 00:39:46 +0000 (20:39 -0400)
committerCristy <urban-warrior@imagemagick.org>
Fri, 11 Oct 2019 00:39:46 +0000 (20:39 -0400)
MagickCore/statistic.c

index 8beb4acfd9f611467cd42fd83d07e6d05c8fd79e..5e5a01b956e2e4c08574df802294d19a8a1d3e7f 100644 (file)
@@ -241,6 +241,9 @@ static double ApplyEvaluateOperator(RandomInfo *random_info,const Quantum pixel,
   double
     result;
 
+  register ssize_t
+    i;
+
   result=0.0;
   switch (op)
   {
@@ -309,7 +312,9 @@ static double ApplyEvaluateOperator(RandomInfo *random_info,const Quantum pixel,
     }
     case LeftShiftEvaluateOperator:
     {
-      result=(double) ((ssize_t) pixel << (ssize_t) (value+0.5));
+      result=(double) pixel;
+      for (i=0; i < (ssize_t) value; i++)
+        result*=2.0;
       break;
     }
     case LogEvaluateOperator:
@@ -373,7 +378,9 @@ static double ApplyEvaluateOperator(RandomInfo *random_info,const Quantum pixel,
     }
     case RightShiftEvaluateOperator:
     {
-      result=(double) ((ssize_t) pixel >> (ssize_t) (value+0.5));
+      result=(double) pixel;
+      for (i=0; i < (ssize_t) value; i++)
+        result/=2.0;
       break;
     }
     case RootMeanSquareEvaluateOperator: