Daniel Stone <[email protected]> (31/12/2010):
> v2: Took Keith's advice and changed memcpy to memmove, as well as the DMX
>     glxproxy equivalent; turns out every single user was doing overlapping
>     memcpys. -daniels

yeah, nasty…

> diff --git a/glx/unpack.h b/glx/unpack.h
> index a4e6d7e..738e79d 100644
> --- a/glx/unpack.h
> +++ b/glx/unpack.h
> @@ -47,7 +47,7 @@
>  ** Fetch a double from potentially unaligned memory.
>  */
>  #ifdef __GLX_ALIGN64
> -#define __GLX_MEM_COPY(dst,src,n)    if (src != NULL && dst != NULL) 
> memcpy(dst,src,n)
> +#define __GLX_MEM_COPY(dst,src,n)    memmove(dst,src,n)
>  #define __GLX_GET_DOUBLE(dst,src)    __GLX_MEM_COPY(&dst,src,8)
>  #else
>  #define __GLX_GET_DOUBLE(dst,src)    (dst) = *((GLdouble*)(src))
> diff --git a/hw/dmx/glxProxy/unpack.h b/hw/dmx/glxProxy/unpack.h
> index f34b6fd..f4a9572 100644
> --- a/hw/dmx/glxProxy/unpack.h
> +++ b/hw/dmx/glxProxy/unpack.h
> @@ -43,7 +43,7 @@
>  ** Fetch a double from potentially unaligned memory.
>  */
>  #ifdef __GLX_ALIGN64
> -#define __GLX_MEM_COPY(dst,src,n)    memcpy(dst,src,n)
> +#define __GLX_MEM_COPY(dst,src,n)    memmove(dst,src,n)
>  #define __GLX_GET_DOUBLE(dst,src)    __GLX_MEM_COPY(&dst,src,8)
>  #else
>  #define __GLX_GET_DOUBLE(dst,src)    (dst) = *((GLdouble*)(src))

Reviewed-by: Cyril Brulebois <[email protected]>

KiBi.

Attachment: signature.asc
Description: Digital signature

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to