Roderick Colenbrander thunderbird2k@gmail.com writes:
Hi,
While working on some other patches, I spotted a small error in the call to surface_get_rect for the source rectangle. I was passing 'This' (destination) instead of Src.
It doesn't work:
../../../tools/runtest -q -P wine -M ddraw.dll -T ../../.. -p ddraw_test.exe.so visual.c && touch visual.ok wine: Unhandled page fault on read access to 0x00000050 at address 0x68e87fc9 (thread 0024), starting debugger... Unhandled exception: page fault on read access to 0x00000050 in 32-bit code (0x68e87fc9). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:68e87fc9 ESP:0032f110 EBP:0032f248 EFLAGS:00010246( R- -- I Z- -P- ) EAX:00000001 EBX:68ed8d20 ECX:00000280 EDX:00000000 ESI:00000000 EDI:000001e0 Stack dump: 0x0032f110: 00146350 68ed2dbc 0032f228 00110014 0x0032f120: beef0202 7d7fb5c0 7bc4907b 68ed8d20 0x0032f130: 00147240 00000072 0032f198 68df9e66 0x0032f140: 00147240 00000080 00000080 00000001 0x0032f150: 0012fc70 00000000 00000072 00000000 0x0032f160: 00147000 686cb060 00000000 00010000 Backtrace: =>0 0x68e87fc9 IWineD3DSurfaceImpl_BltOverride+0x1529(This=<is not available>, DestRect=<is not available>, SrcSurface=(nil), SrcRect=(nil), Flags=0x1000400, DDBltFx=0x32fa9c, Filter=WINED3DTEXF_POINT) [/home/julliard/wine/wine/dlls/wined3d/surface.c:284] in wined3d (0x0032f248) 1 0x68e8b1e7 IWineD3DSurfaceImpl_Blt+0xb7(iface=<register ESI not in topmost frame>, DestRect=(nil), SrcSurface=<register EDI not in topmost frame>, SrcRect=(nil), Flags=0x1000400, DDBltFx=0x32fa9c, Filter=WINED3DTEXF_POINT) [/home/julliard/wine/wine/dlls/wined3d/surface.c:4271] in wined3d (0x0032f2d8) 2 0x686ae1bb IDirectDrawSurfaceImpl_Blt+0x1ab(iface=0x12b888, DestRect=<register ESI not in topmost frame>, SrcSurface=(nil), SrcRect=(nil), Flags=<register EDI not in topmost frame>, DDBltFx=0x32fa9c) [/home/julliard/wine/wine/dlls/ddraw/surface.c:806] in ddraw (0x0032f348) 3 0x686b0717 IDirectDrawSurface3Impl_Blt+0x47(This=0x12b88c, prcDst=(nil), pSrcSurf=(nil), prcSrc=(nil), dwFlags=0x1000400, pFX=0x32fa9c) [/home/julliard/wine/wine/dlls/ddraw/surface_thunks.c:113] in ddraw (0x0032f378) 4 0x68663213 D3D1_TextureMapBlendTest+0x263() [/home/julliard/wine/wine/dlls/ddraw/tests/visual.c:1302] in ddraw_test (0x0032fb88) 5 0x68669bb5 func_visual+0x1375() [/home/julliard/wine/wine/dlls/ddraw/tests/visual.c:2979] in ddraw_test (0x0032fd48) 6 0x6866a82e run_test+0x14e(name=<is not available>) [/home/julliard/wine/wine/dlls/ddraw/tests/../../../include/wine/test.h:543] in ddraw_test (0x0032fd98) 7 0x6866aa02 main+0x132(argc=<couldn't compute location>, argv=<couldn't compute location>) [/home/julliard/wine/wine/dlls/ddraw/tests/../../../include/wine/test.h:592] in ddraw_test (0x0032fe58) 8 0x6866ab9c __wine_spec_exe_entry+0x7c(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:37] in ddraw_test (0x0032fea8) 9 0x7b8584c4 start_process+0x54(peb=<register ESI not in topmost frame>) [/home/julliard/wine/wine/dlls/kernel32/process.c:989] in kernel32 (0x0032fee8) 10 0x7bc71344 call_thread_func+0xc() in ntdll (0x0032fef8) 11 0x7bc71510 call_thread_entry_point+0x70(entry=0x7b858470, arg=0x7ffdf000) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2459] in ntdll (0x0032ffc8) 12 0x7bc4cfca in ntdll (+0x3cfca) (0x0032ffe8) 0x68e87fc9 IWineD3DSurfaceImpl_BltOverride+0x1529 [/home/julliard/wine/wine/dlls/wined3d/surface.c:284] in wined3d: movl 0x50(%edx),%eax 284 rect_out->right = This->currentDesc.Width;