From e8cd71d6f52967d7dd63efcb186834aa9e6e53e5 Mon Sep 17 00:00:00 2001 From: Vladimir Nadvornik Date: Sun, 23 Sep 2012 11:19:36 +0200 Subject: [PATCH] better fix for big-endian architectures --- src/image_load_tiff.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/image_load_tiff.c b/src/image_load_tiff.c index 3774f9dc..07e6786b 100644 --- a/src/image_load_tiff.c +++ b/src/image_load_tiff.c @@ -295,18 +295,21 @@ static gboolean image_loader_tiff_load (gpointer loader, const guchar *buf, gsiz /* Turns out that the packing used by TIFFRGBAImage depends on * the host byte order... */ - while (pixels < lt->pixbuf->pixels + bytes) + { + guchar *ptr = pixels; + while (ptr < pixels + bytes) { - uint32 pixel = *(uint32 *)pixels; + uint32 pixel = *(uint32 *)ptr; int r = TIFFGetR(pixel); int g = TIFFGetG(pixel); int b = TIFFGetB(pixel); int a = TIFFGetA(pixel); - *pixels++ = r; - *pixels++ = g; - *pixels++ = b; - *pixels++ = a; + *ptr++ = r; + *ptr++ = g; + *ptr++ = b; + *ptr++ = a; } + } #endif lt->area_updated_cb(loader, 0, 0, width, height, lt->data); -- 2.20.1