From 1fa82889458f44a61704e7c47d1de77276c87bc7 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Wed, 08 Apr 2009 22:34:02 +0000 Subject: Fix output on big endian machines. Fixes bug #578433. 2009-04-09 Benjamin Berg * backend/dvi/cairo-device.c: (dvi_cairo_put_pixel): Fix output on big endian machines. Fixes bug #578433. svn path=/trunk/; revision=3586 --- diff --git a/ChangeLog b/ChangeLog index 1f1fdbe..1c9c047 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-04-09 Benjamin Berg + + * backend/dvi/cairo-device.c: (dvi_cairo_put_pixel): + Fix output on big endian machines. Fixes bug #578433. + 2009-04-08 Dan Winship * cut-n-paste/smclient/eggsmclient-xsmp.c (save_state): diff --git a/backend/dvi/cairo-device.c b/backend/dvi/cairo-device.c index 9a42e7b..bf46cfc 100644 --- a/backend/dvi/cairo-device.c +++ b/backend/dvi/cairo-device.c @@ -247,16 +247,14 @@ dvi_cairo_put_pixel (void *image, int x, int y, Ulong color) { cairo_surface_t *surface; gint rowstride; - guchar *p; + guint32 *p; surface = (cairo_surface_t *) image; rowstride = cairo_image_surface_get_stride (surface); - p = cairo_image_surface_get_data (surface) + y * rowstride + x * 4; + p = (guint32*) (cairo_image_surface_get_data (surface) + y * rowstride + x * 4); - p[2] = (color >> 16) & 0xff; - p[1] = (color >> 8) & 0xff; - p[0] = (color >> 0) & 0xff; + *p = color; } static void -- cgit v0.9.1