From: Søren Sandmann Pedersen <[email protected]>

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 it
there weren't any visual differences.
---
 pixman/pixman-filter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
index 5ff7b6e..b2bf53f 100644
--- a/pixman/pixman-filter.c
+++ b/pixman/pixman-filter.c
@@ -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 */
-- 
1.7.11.7

_______________________________________________
Pixman mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pixman

Reply via email to