Dan Hipschman <[EMAIL PROTECTED]> writes: > This patch gets conformant arrays working in the tests. Currently, only > the address of some conformant arrays are being marshalled, and this wasn't > showing up in the tests because some storage was static. This patch fixes > the problem by writing pointers to conformant array types in the format > string. This also requires handling field pointer conformances, and > expression evaluation routines that expect the containing structure of a > conformant array at the top of the stack, rather than the conformant array > itself. With this patch, the tests still pass, but correctly this time.
It breaks the ole32 tests: ../../../tools/runtest -q -P wine -M ole32.dll -T ../../.. -p ole32_test.exe.so moniker.c && touch moniker.ok moniker.c:897: Test failed: IRunningObjectTable_EnumRunning hr=800703e6 wine: Unhandled page fault on read access to 0x00000000 at address 0x60527ff6 (thread 0010), starting debugger... WineDbg starting on pid 000f Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x60527ff6). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:60527ff6 ESP:0033fa90 EBP:0033fe58 EFLAGS:00010206( - 00 - RIP1) EAX:0033fe30 EBX:6054601c ECX:00000000 EDX:00000000 ESI:800703e6 EDI:6053e4ec Stack dump: 0x0033fa90: 00000000 6053e498 800703e6 60542308 0x0033faa0: 0033fe34 00000100 00000000 00000000 0x0033fab0: 60547478 60547474 6053cdc8 0033fe48 0x0033fac0: 0033fe44 0033fe40 0033fe38 0033fe20 0x0033fad0: 6053d190 60542308 0033fe14 6053e720 0x0033fae0: 6053e2dc 60539d74 6053e154 60539de8 Backtrace: =>1 0x60527ff6 func_moniker+0x15f6() [/home/julliard/wine/wine/dlls/ole32/tests/moniker.c:898] in ole32_test (0x0033fe58) 2 0x60538df8 run_test+0x128(name=0x1103ce) [/home/julliard/wine/wine/dlls/ole32/tests/../../../include/wine/test.h:389] in ole32_test (0x0033fea8) 3 0x6053948d main+0x14d(argc=<register ECX not in topmost frame>, argv=<register ECX not in topmost frame>) [/home/julliard/wine/wine/dlls/ole32/tests/../../../include/wine/test.h:437] in ole32_test (0x0033fed8) 4 0x6053955b __wine_spec_exe_entry+0x5b(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in ole32_test (0x0033ff08) 5 0x7b87446e start_process+0xee(arg=0x0) [/home/julliard/wine/wine/dlls/kernel32/process.c:839] in kernel32 (0x0033ffe8) 6 0x600289a7 wine_switch_to_stack+0x17() in libwine.so.1 (0x00000000) 0x60527ff6 func_moniker+0x15f6 [/home/julliard/wine/wine/dlls/ole32/tests/moniker.c:898] in ole32_test: movl 0x0(%edx),%ecx 898 hr = IEnumMoniker_QueryInterface(spEM1, &IID_IUnknown, (void*) &lpEM1); Wine-dbg> -- Alexandre Julliard [EMAIL PROTECTED]