ref: cc809bcbe6970515833971e725f510012d9f04e6
parent: 60402683ba9b64de99c5c31d029eb3b564404d97
author: David Turner <[email protected]>
date: Thu Jun 29 03:59:40 EDT 2000
fixed an ugly bug that caused some unaligned access on 64-bits platforms.. Thnks a lot to Tom !!
--- 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;