fixed an ugly bug that caused some unaligned access on 64-bits platforms.. Thnks a lot to Tom !!
diff --git a/demos/graph/x11/grx11.c b/demos/graph/x11/grx11.c
index 8ca4f7f..65f06da 100644
--- a/demos/graph/x11/grx11.c
+++ b/demos/graph/x11/grx11.c
@@ -425,11 +425,23 @@
byte* _read = read;
byte* limit = _write + 4*w;
- for ( ; _write < limit; _write += 4, _read++ )
+ if (sizeof(long) > 4)
{
- byte color = *_read;
-
- *(unsigned long*)_write = surface->color[color].pixel;
+ for ( ; _write < limit; _write += 4, _read++ )
+ {
+ byte color = *_read;
+
+ *(unsigned int*)_write = surface->color[color].pixel;
+ }
+ }
+ else
+ {
+ for ( ; _write < limit; _write += 4, _read++ )
+ {
+ byte color = *_read;
+
+ *(unsigned long*)_write = surface->color[color].pixel;
+ }
}
write += target->pitch;