summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2010-11-02 20:10:32 +0100
committerJeremy Huddleston <jeremyhu@apple.com>2010-12-02 15:53:46 -0800
commit806790bd9194b60419281442b1ae4fc5fff802aa (patch)
treefbce3a0f49b6a1fdbef60c1de2901e810cae5025
parentd0157229e89c6d8ffc491ca600cd933d8951fa76 (diff)
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> (cherry picked from commit dab064fa5e0b1f5c67222562ad5367005832cba1)
-rw-r--r--render/render.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/render/render.c b/render/render.c
index 00241f9af..85a43924a 100644
--- a/render/render.c
+++ b/render/render.c
@@ -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;
}
}