gdiplus: Avoid a devision by zero when a being added segment length is 0.
Dmitry Timoshkov
dmitry at baikal.ru
Mon Feb 18 03:32:12 CST 2013
This sometimes happens after GdipAddPathLine + GdipWidenPath.
---
dlls/gdiplus/graphicspath.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/dlls/gdiplus/graphicspath.c b/dlls/gdiplus/graphicspath.c
index 1fbebba..f4d1a4b 100644
--- a/dlls/gdiplus/graphicspath.c
+++ b/dlls/gdiplus/graphicspath.c
@@ -1702,6 +1702,13 @@ static void add_bevel_point(const GpPointF *endpoint, const GpPointF *nextpoint,
REAL distance = pen->width/2.0;
REAL bevel_dx, bevel_dy;
+ if (segment_length == 0.0)
+ {
+ *last_point = add_path_list_node(*last_point, endpoint->X,
+ endpoint->Y, PathPointTypeLine);
+ return;
+ }
+
if (right_side)
{
bevel_dx = -distance * segment_dy / segment_length;
--
1.8.1.3
More information about the wine-patches
mailing list