Hi Jeremy,
On 12/17/09 12:13 AM, Jeremy White wrote:
dlls/oleaut32/tests/usrmarshal.c | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/oleaut32/tests/usrmarshal.c b/dlls/oleaut32/tests/usrmarshal.c index e9c53e9..1c770de 100644 --- a/dlls/oleaut32/tests/usrmarshal.c +++ b/dlls/oleaut32/tests/usrmarshal.c @@ -306,7 +306,8 @@ static void test_marshal_LPSAFEARRAY(void) buffer = HeapAlloc(GetProcessHeap(), 0, size); init_user_marshal_cb(&umcb,&stub_msg,&rpc_msg, buffer, size, MSHCTX_DIFFERENTMACHINE); next = LPSAFEARRAY_UserMarshal(&umcb.Flags, buffer,&lpsa);
- ok(next - buffer == expected, "Marshaled %u bytes, expected %u\n", (ULONG) (next - buffer), expected);
- ok(next - buffer == expected || next - buffer + sizeof(DWORD) == expected /*win9x*/,
"Marshaled %u bytes, expected %u\n", (ULONG) (next - buffer), expected);
It looks like a good place to use broken().
Thanks, Jacek
It looks like a good place to use broken().
I don't think it's broken on win98; it looks as though they do 4 byte alignment prior to the data structure in win9x, and winnt and on seem to do 8 byte alignment prior to the data chunk. That results in a 4 byte difference.
Cheers,
Jeremy
Jeremy White jwhite@codeweavers.com writes:
It looks like a good place to use broken().
I don't think it's broken on win98; it looks as though they do 4 byte alignment prior to the data structure in win9x, and winnt and on seem to do 8 byte alignment prior to the data chunk. That results in a 4 byte difference.
It should really do 8 byte alignment for 64-bit types. I think that qualifies as broken.