[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