Fix for potential unaligned memory accesses
authorSiarhei Siamashka <siarhei.siamashka@nokia.com>
Mon, 29 Nov 2010 22:31:06 +0000 (00:31 +0200)
committerSiarhei Siamashka <siarhei.siamashka@nokia.com>
Tue, 7 Dec 2010 00:10:51 +0000 (02:10 +0200)
commit3d094997b1820719d15cec7dc633ed37e1912bfc
tree1b071445331731db7ec53d7cf5d020d4751ae0a8
parent985e59a82fa5e644cb6516dc174ab3f79f1448df
Fix for potential unaligned memory accesses

The temporary scanline buffer allocated on stack was declared
as uint8_t array. As a result, the compiler was free to select
any arbitrary alignment for it (even though there is typically
no reason to use really weird alignments here and the stack is
normally at least 4 bytes aligned on most platforms). Having
improper alignment is non-portable and can impact performance
or even make the code misbehave depending on the target platform.

Using uint64_t type for this array should ensure that any possible
memory accesses done by pixman code are going to be handled correctly
(pixman-combine64.c can access this buffer via uint64_t * pointer).

Some alignment related problem was reported in:
http://lists.freedesktop.org/archives/pixman/2010-November/000747.html
pixman/pixman-general.c