render: Fix byteswapping of gradient stops

The function swapStops repeatedly swaps the color components as
CARD16, but incorrectly steps over them as if they were CARD32.

This causes half of the stops not to be swapped at all and some
unrelated data be swapped instead.

Signed-off-by: Andrea Canciani <ranma42@gmail.com>
Reviewed-by: Soren Sandmann <sandmann@daimi.au.dk>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Andrea Canciani 2010-11-02 20:10:32 +01:00 committed by Keith Packard
parent 279ef1ffd7
commit dab064fa5e

View File

@ -2552,8 +2552,8 @@ static void swapStops(void *stuff, int num)
}
colors = (CARD16 *)(stops);
for (i = 0; i < 4*num; ++i) {
swaps(stops, n);
++stops;
swaps(colors, n);
++colors;
}
}