From: Vladimir Nadvornik Date: Sun, 23 Sep 2012 09:19:36 +0000 (+0200) Subject: better fix for big-endian architectures X-Git-Tag: v1.2~12 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=e8cd71d6f52967d7dd63efcb186834aa9e6e53e5 better fix for big-endian architectures --- 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);