fonts: don't call LineTo with the gdi lock
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Sun Aug 28 06:04:41 CDT 2005
Huw Davies <huw at codeweavers.com>
Don't call LineTo while holding the gdi lock
Index: dlls/gdi/font.c
===================================================================
RCS file: /home/wine/wine/dlls/gdi/font.c,v
retrieving revision 1.15
diff -u -p -r1.15 font.c
--- dlls/gdi/font.c 23 Aug 2005 09:38:59 -0000 1.15
+++ dlls/gdi/font.c 28 Aug 2005 11:01:01 -0000
@@ -2021,7 +2021,8 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x,
pts[1].y = y - ywidth;
DPtoLP(hdc, pts, 2);
MoveToEx(hdc, pts[0].x - underlinePos * sinEsc, pts[0].y - underlinePos * cosEsc, &oldpt);
- LineTo(hdc, pts[1].x - underlinePos * sinEsc, pts[1].y - underlinePos * cosEsc);
+ if(dc->funcs->pLineTo)
+ dc->funcs->pLineTo(dc->physDev, pts[1].x - underlinePos * sinEsc, pts[1].y - underlinePos * cosEsc);
MoveToEx(hdc, oldpt.x, oldpt.y, NULL);
DeleteObject(SelectObject(hdc, hpen));
}
@@ -2037,7 +2038,8 @@ BOOL WINAPI ExtTextOutW( HDC hdc, INT x,
pts[1].y = y - ywidth;
DPtoLP(hdc, pts, 2);
MoveToEx(hdc, pts[0].x - strikeoutPos * sinEsc, pts[0].y - strikeoutPos * cosEsc, &oldpt);
- LineTo(hdc, pts[1].x - strikeoutPos * sinEsc, pts[1].y - strikeoutPos * cosEsc);
+ if(dc->funcs->pLineTo)
+ dc->funcs->pLineTo(dc->physDev, pts[1].x - strikeoutPos * sinEsc, pts[1].y - strikeoutPos * cosEsc);
MoveToEx(hdc, oldpt.x, oldpt.y, NULL);
DeleteObject(SelectObject(hdc, hpen));
}
More information about the wine-patches
mailing list