https://bugs.winehq.org/show_bug.cgi?id=43197
Bug ID: 43197 Summary: 5Plus: regression: Print dialog crashes with illegal floating point operation Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: felix.huber@schyf.de Distribution: ---
5Plus (a German school credits and report program) crashes with lately versions of wine when trying to print a report. A pop-up with "Unzulässige Gleitkommaoperation" (illegal floating point operation) occurs and the print cancel button doesn't react anymore. Interestingly, the menu bar gets corrupted with the first letters missing the left half.
The regression occurs here:
commit a60144ee74e1db170f04edeb8cfd3a5a17d36d46 Author: Huw Davies huw@codeweavers.com Date: Thu Jan 26 09:30:20 2017 +0000
user32: Disable cached DCs once they are released.
Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
:040000 040000 e4b9b15bea9e9ba5c5e59a9bc1711793f8ef38db 82429bb454753e5dd76e396abababde24e0db498 M dlls
The error is in dlls/user32/painting.c static INT release_dc( HWND hwnd, HDC hdc, BOOL end_paint ) { if (!(dce->flags & DCX_NORESETATTRS)) SetHookFlags( dce->hdc, DCHF_RESETDC ); if (end_paint || (dce->flags & DCX_CACHE)) delete_clip_rgn( dce ); if (dce->flags & DCX_CACHE) { dce->count = 0; SetHookFlags( dce->hdc, DCHF_DISABLEDC ); } ret = TRUE; }
Commenting out SetHookFlags() bings back normal behaviour.