oleaut32: Fix SAFEARRAY marshalling on 64-bit platforms.

Alexandre Julliard julliard at winehq.org
Mon Feb 9 07:05:44 CST 2009


Rob Shearman <robertshearman at gmail.com> writes:

> @@ -874,8 +874,8 @@ unsigned char * WINAPI LPSAFEARRAY_UserMarshal(ULONG *pFlags, unsigned char *Buf
>  
>          *(ULONG *)Buffer = ulCellCount;
>          Buffer += sizeof(ULONG);
> -        *(ULONG_PTR *)Buffer = (ULONG_PTR)psa->pvData;
> -        Buffer += sizeof(ULONG_PTR);
> +        *(ULONG *)Buffer = (ULONG)(ULONG_PTR)psa->pvData;
> +        Buffer += sizeof(ULONG);

Wouldn't this break if the pointer happens to be 4Gb-aligned?

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list