http://bugs.winehq.org/show_bug.cgi?id=31141
Bug #: 31141 Summary: wined3d_get_adapter_display_mode failure with relay+trace Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: cleverca22@gmail.com Classification: Unclassified
looks like somebody added an argument to wined3d_get_adapter_display_mode back on 2012-06-27 and forgot to update the .spec file, seems like that causes relay+trace to crap on the stack
=>0 0x7e96f92d wined3d_get_adapter_display_mode+0x16d(wined3d=0x15a6b0, adapter_idx=0, mode=0x33f5dc, rotation=0x7bc617fa) [/home/clever/wine-git/dlls/wined3d/directx.c:3062] in wined3d (0x0033f4f8) 1 0x7bc617fa call_entry_point+0x29() in ntdll (0x0033f518)
return address became the 4th argument and the trace log itself had no mention of a 4th argument
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index 9e0cb65..746b528 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -10,7 +10,7 @@ @ cdecl wined3d_decref(ptr) @ cdecl wined3d_enum_adapter_modes(ptr long long long ptr) @ cdecl wined3d_get_adapter_count(ptr) -@ cdecl wined3d_get_adapter_display_mode(ptr long ptr) +@ cdecl wined3d_get_adapter_display_mode(ptr long ptr ptr) @ cdecl wined3d_get_adapter_identifier(ptr long long ptr) @ cdecl wined3d_get_adapter_mode_count(ptr long long) @ cdecl wined3d_get_adapter_monitor(ptr long)
fix was pretty simple :)