[OLE #48] Restructure Unmarshaling Code
Alexandre Julliard
julliard at wine.dyndns.org
Fri Jan 21 04:34:52 CST 2005
Robert Shearman <rob at codeweavers.com> writes:
> Changelog:
> - Add a new flag SORFP_NOLIFETIMEMGMT to tell the proxy manager not to
> pass an outer unknown to IRpcProxyBuffer_CreateProxy.
> - Move the low-level unmarshaling code into a new function,
> unmarshal_object, so that it can be easily reused for unmarshaling
> IRemUnknown.
This causes the test to crash:
../../../tools/runtest -q -P wine -M ole32.dll -T ../../.. -p ole32_test.exe.so marshal.c && touch marshal.ok
marshal.c:329: Test failed: Number of locks should be 0, but actually is 2
wine: Unhandled exception (thread 0009), starting debugger...
WineDbg starting on pid 0x8
Unhandled exception: page fault on read access to 0x00000002 in 32-bit code (0x00000002).
In 32 bit mode.
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:1007 GS:0000
EIP:00000002 ESP:4067fdcc EBP:4067fdd8 EFLAGS:00010216( - 00 -RIAP1)
EAX:00000002 EBX:40776bf0 ECX:40031000 EDX:40340074
ESI:403c924c EDI:403c92a0
Stack dump:
0x4067fdcc: 407479d2 403c92e4 40776bf0 4067fdf4
0x4067fddc: 40747ff6 403c92a0 40776bf0 403c9230
0x4067fdec: 40378828 403c9258 4067fe0c 407481ba
0x4067fdfc: 403c9228 40776bf0 403787e0 403787c0
0x4067fe0c: 4067fe2c 40738c0c 403787e0 40776bf0
0x4067fe1c: 40776acf 403787c0 40573c81 00000000
0200: sel=1007 base=40031000 limit=00001f97 32-bit rw-
Backtrace:
=>1 0x00000002 (0x4067fdd8)
2 0x40747ff6 proxy_manager_disconnect+0x9e(This=0x403c9228) [/home/julliard/wine/wine/dlls/ole32/marshal.c:455] in ole32 (0x4067fdf4)
3 0x407481ba MARSHAL_Disconnect_Proxies+0x36(apt=0x403787e0) [/home/julliard/wine/wine/dlls/ole32/marshal.c:536] in ole32 (0x4067fe0c)
4 0x40738c0c COM_ApartmentRelease+0xe0(apt=0x403787e0) [/home/julliard/wine/wine/dlls/ole32/compobj.c:310] in ole32 (0x4067fe2c)
5 0x407392b5 CoUninitialize+0xad [/home/julliard/wine/wine/dlls/ole32/compobj.c:639] in ole32 (0x4067fe44)
6 0x4056ff2e test_marshal_proxy_apartment_shutdown+0x15e [/home/julliard/wine/wine/dlls/ole32/tests/marshal.c:393] in ole32_test (0x4067fe70)
7 0x40571979 func_marshal+0x59 [/home/julliard/wine/wine/dlls/ole32/tests/marshal.c:1063] in ole32_test (0x4067fe80)
8 0x40573ee5 run_test+0x81(name=0x40340a76) [/home/julliard/wine/wine/dlls/ole32/tests/../../../include/wine/test.h:287] in ole32_test (0x4067fe94)
9 0x405740da main+0xf2(argc=0x2, argv=0x40340a58) [/home/julliard/wine/wine/dlls/ole32/tests/../../../include/wine/test.h:327] in ole32_test (0x4067feac)
10 0x4056f190 __wine_exe_main+0x190 in ole32_test (0x4067ff2c)
11 0x405088a2 start_process+0x8a(arg=0x0) [/home/julliard/wine/wine/dlls/kernel/process.c:1046] in kernel32 (0x4067fff4)
12 0x4001ccd5 wine_pthread_abort_thread+0x29(status=0x0) [/home/julliard/wine/wine/libs/wine/port.c:85] in libwine.so.1 (0x00000000)
--
Alexandre Julliard
julliard at winehq.org
More information about the wine-devel
mailing list