pixman-filter.c: Use 65536, not 65535, for fixed point conversion
authorSøren Sandmann Pedersen <ssp@redhat.com>
Tue, 10 Sep 2013 13:44:40 +0000 (09:44 -0400)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Mon, 16 Sep 2013 21:54:46 +0000 (17:54 -0400)
Converting a double precision number to 16.16 fixed point should be
done by multiplying with 65536.0, not 65535.0.

The bug could potentially cause certain filters that would otherwise
leave the image bit-for-bit unchanged under an identity
transformation, to not do so, but the numbers are close enough that
there weren't any visual differences.

pixman/pixman-filter.c

index 5ff7b6e..b2bf53f 100644 (file)
@@ -275,7 +275,7 @@ create_1d_filter (int             *width,
            }
 
            total += c;
-            *p++ = (pixman_fixed_t)(c * 65535.0 + 0.5);
+            *p++ = (pixman_fixed_t)(c * 65536.0 + 0.5);
         }
 
        /* Normalize */