[PATCH] oleaut32: Fix handling dual interfaces in ITypeInfo::GetRefTypeInfo.
Alexandre Julliard
julliard at winehq.org
Wed Mar 25 15:13:04 CDT 2020
Jacek Caban <jacek at codeweavers.com> writes:
> Based on patch by Kevin Puetz.
>
> Signed-off-by: Jacek Caban <jacek at codeweavers.com>
> ---
> dlls/oleaut32/tests/tmarshal.idl | 23 +++++++++++++
> dlls/oleaut32/tests/typelib.c | 58 +++++++++++++++++++++++++++++--
> dlls/oleaut32/typelib.c | 59 +++++++++++++++++++-------------
> 3 files changed, 114 insertions(+), 26 deletions(-)
This is causing a number of test failures, for instance:
../../../tools/runtest -q -P wine -T ../../.. -M shell32.dll -p shell32_test.exe shelldispatch && touch shelldispatch.ok
shelldispatch.c:1120: Test failed: got 0x80004002
wine: Unhandled page fault on read access to 00000000 at address 0042065A (thread 0009), starting debugger...
Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x0042065a).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:0042065a ESP:0082fce0 EBP:0082fe18 EFLAGS:00010246( R- -- I Z- -P- )
EAX:00000000 EBX:80004002 ECX:0082fca0 EDX:004abdf8
ESI:0082fda8 EDI:00480fe8
Stack dump:
0x0082fce0: 00000000 004809fc 80004002 00000008
0x0082fcf0: 0082fd58 00000001 0082fd5c 0000000e
0x0082fd00: 00000000 00000000 00000000 00000000
0x0082fd10: 00110060 00335c98 0082fd40 00000001
0x0082fd20: 00000040 00000004 0082fd78 7bcab324
0x0082fd30: 00230000 00000000 00010046 0082fdc8
Backtrace:
=>0 0x0042065a func_shelldispatch+0xd0a() [Z:\home\julliard\wine\wine\dlls\shell32\tests\..\..\..\include\exdisp.h:1892] in shell32_test (0x0082fe18)
1 0x00477afa main+0x279(argc=<is not available>, argv=<is not available>) [Z:\home\julliard\wine\wine\dlls\shell32\tests\..\..\..\include\wine\test.h:560] in shell32_test (0x0082fee8)
2 0x0047753e mainCRTStartup+0x6d() [Z:\home\julliard\wine\wine\dlls\msvcrt\crt_main.c:63] in shell32_test (0x0082ff30)
3 0x7b450df2 call_process_entry+0x11() in kernel32 (0x0082ff48)
4 0x7b451210 start_process+0xdf(entry=<couldn't compute location>, peb=<couldn't compute location>) [Z:\home\julliard\wine\wine\dlls\kernel32\process.c:153] in kernel32 (0x0082ffd8)
5 0x7b450dfe __wine_start_process+0x9() in kernel32 (0x0082ffec)
0x0042065a func_shelldispatch+0xd0a [Z:\home\julliard\wine\wine\dlls\shell32\tests\..\..\..\include\exdisp.h:1892] in shell32_test: movl 0x0(%eax),%edx
1892 return This->lpVtbl->Refresh(This);
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list