gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0
authorSøren Sandmann Pedersen <ssp@redhat.com>
Sun, 18 Dec 2011 12:29:59 +0000 (07:29 -0500)
committerSøren Sandmann Pedersen <ssp@redhat.com>
Tue, 3 Jan 2012 16:37:12 +0000 (11:37 -0500)
commit89498a1178bc173857f3d1ee1f889afcc58b21b6
treeffe622783311fce135eb2964f93f1a4260a6e9a0
parentd0091a33fcdb49b65a6f20f775cfde520380b1fa
gradient-walker: For NONE repeats, when x < 0 or x > 1, set both colors to 0

ec7c9c2b6865b48b8bd14e4 introduced a bug where NONE gradients would be
misrendered, causing the area outside the gradient to be treated as a
(very) long fade to transparent.The problem was that a check for
positions outside the gradients were dropped in favor of relying on
the sentinels.

Aside from misrendering, this also caused a signed integer overflow
when the code would compute a stepper size based on MIN_INT32.

This patches fixes the issue by reinstating a check for these cases
and setting both the right and left colors to transparent black.
pixman/pixman-gradient-walker.c