From 7cf24311d6fa0f3da411540438b5f26f14e0cb8f Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Wed, 8 Apr 2009 22:38:09 +0000 Subject: [PATCH] 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=/branches/gnome-2-26/; revision=3587 --- ChangeLog | 5 +++++ backend/dvi/cairo-device.c | 8 +++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index ebe8c373..7195980c 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 Nickolay V. Shmyrev * backend/tiff/tiff2ps.c (tiff2ps_context_new): diff --git a/backend/dvi/cairo-device.c b/backend/dvi/cairo-device.c index 9a42e7b5..bf46cfc3 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 -- 2.47.1