[sane-devel] Schedule for release of sane-backends 1.0.22
Julien BLACHE
jb at jblache.org
Sat Jan 8 08:43:00 UTC 2011
Nicolas Martin <nicolas0martin at gmail.com> wrote:
Hi,
> What is weird here, is that the effect of overlap in memcpy does not
> seem to produce the same effect on different systems !
Using memcpy() on overlapping memory areas is undefined behaviour per
spec.
glibc has several memcpy() implementations optimized for different
hardware capabilities. A recent implementation for Atom/Core2 CPUs
performs the copy from tail to head (giving a nice 4x/5x speedup on
these CPUs), which breaks with overlapping memory areas.
Using memmove() is the correct way to handle overlapping areas, as
documented.
See <http://lwn.net/Articles/414467/> for more (links/comments).
HTH,
JB.
--
Julien BLACHE <http://www.jblache.org>
<jb at jblache.org> GPG KeyID 0xF5D65169
More information about the sane-devel
mailing list