[PATCH 4/5] wined3d: Merge the IWineD3DSwapChain::Destroy() implementations.

Alexandre Julliard julliard at winehq.org
Fri Apr 8 07:08:17 CDT 2011


Henri Verbeet <hverbeet at codeweavers.com> writes:

> They're mostly the same, except for the GL version also destroying its
> contexts, and being a bit more careful about the order in which backbuffers
> are destroyed.
> ---
>  dlls/wined3d/swapchain.c |  175 ++++++++++++++++-----------------------------
>  1 files changed, 62 insertions(+), 113 deletions(-)

It doesn't work here:

../../../tools/runtest -q -P wine -M ddraw.dll -T ../../.. -p ddraw_test.exe.so ddrawmodes.c && touch ddrawmodes.ok
wine: Unhandled page fault on read access to 0x00000f2c at address 0x687550fa (thread 0021), starting debugger...
Unhandled exception: page fault on read access to 0x00000f2c in 32-bit code (0x687550fa).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:687550fa ESP:0032f910 EBP:0032f948 EFLAGS:00010246(  R- --  I  Z- -P- )
 EAX:00000021 EBX:6884b244 ECX:00110064 EDX:00000000
 ESI:00000000 EDI:00000001
Stack dump:
0x0032f910:  00001302 00131ef0 00000000 00000000
0x0032f920:  00000000 00000000 00000000 00110014
0x0032f930:  0000ff00 000000ff 687550db 6884b244
0x0032f940:  00131848 00000001 0032f9a8 6880052b
0x0032f950:  00134d58 00000000 00131ef0 7bc73cfc
0x0032f960:  00000002 00129f28 00000000 000004b0
Backtrace:
=>0 0x687550fa context_destroy+0x2a(This=0x134d58, context=(nil)) [/home/julliard/wine/wine/dlls/wined3d/context.c:1615] in wined3d (0x0032f948)
  1 0x6880052b IWineD3DBaseSwapChainImpl_Destroy+0x18a(iface=0x131848) [/home/julliard/wine/wine/dlls/wined3d/swapchain.c:65] in wined3d (0x0032f9a8)
  2 0x688006a1 IWineD3DBaseSwapChainImpl_Release+0x40(iface=0x131848) [/home/julliard/wine/wine/dlls/wined3d/swapchain.c:125] in wined3d (0x0032f9e8)
  3 0x686d25b9 D3D7CB_DestroySwapChain+0x58(swapchain=0x131848) [/home/julliard/wine/wine/dlls/ddraw/ddraw.c:2621] in ddraw (0x0032fa18)
  4 0x6875d317 IWineD3DDeviceImpl_UninitGDI+0x66(iface=0x134d58, D3DCB_DestroySwapChain=0x686d2560) [/home/julliard/wine/wine/dlls/wined3d/device.c:2300] in wined3d (0x0032fa78)
  5 0x686f8f6e ddraw_surface7_Release+0x1cd(iface=0x129f28) [/home/julliard/wine/wine/dlls/ddraw/surface.c:396] in ddraw (0x0032fad8)
  6 0x68689c21 func_ddrawmodes+0x2720() [/home/julliard/wine/wine/dlls/ddraw/tests/ddrawmodes.c:583] in ddraw_test (0x0032fd38)
  7 0x686adc9e run_test+0x14d(name="ddrawmodes.c") [/home/julliard/wine/wine/dlls/ddraw/tests/../../../include/wine/test.h:556] in ddraw_test (0x0032fd88)
  8 0x686ae767 main+0x156(argc=0xffffffff, argv=(nil)) [/home/julliard/wine/wine/dlls/ddraw/tests/../../../include/wine/test.h:624] in ddraw_test (0x0032fe48)
  9 0x686ae93c __wine_spec_exe_entry+0x7b(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in ddraw_test (0x0032fe90)
  10 0x7b859a6c call_process_entry+0xb() in kernel32 (0x0032fea8)
  11 0x7b85a69f start_process+0x5e(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/kernel32/process.c:1086] in kernel32 (0x0032fee8)
  12 0x7bc74c78 call_thread_func+0xb() in ntdll (0x0032fef8)
  13 0x7bc776b0 call_thread_entry_point+0x6f(entry=0x7b85a640, arg=0x7ffdf000) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2499] in ntdll (0x0032ffc8)
  14 0x7bc4d27a start_process+0x29(kernel_start=0x7b85a640) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2606] in ntdll (0x0032ffe8)
  15 0x6802996d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
0x687550fa context_destroy+0x2a [/home/julliard/wine/wine/dlls/wined3d/context.c:1615] in wined3d: cmpl	%eax,0xf2c(%esi)
1615	    if (context->tid == GetCurrentThreadId() || !context->current)

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list