Alexandre Julliard : gdi32: Fix skipping of zero-length dashes.

Alexandre Julliard julliard at winehq.org
Wed Jan 4 13:52:59 CST 2012


Module: wine
Branch: master
Commit: 618425ac4c405aaa28aa30d787e119ae6c605996
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=618425ac4c405aaa28aa30d787e119ae6c605996

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Jan  4 14:57:52 2012 +0100

gdi32: Fix skipping of zero-length dashes.

---

 dlls/gdi32/dibdrv/objects.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/dlls/gdi32/dibdrv/objects.c b/dlls/gdi32/dibdrv/objects.c
index dffea12..ee58192 100644
--- a/dlls/gdi32/dibdrv/objects.c
+++ b/dlls/gdi32/dibdrv/objects.c
@@ -779,7 +779,7 @@ void reset_dash_origin(dibdrv_physdev *pdev)
 static inline void skip_dash(dibdrv_physdev *pdev, unsigned int skip)
 {
     skip %= pdev->pen_pattern.total_len;
-    while(skip)
+    do
     {
         if(pdev->dash_pos.left_in_dash > skip)
         {
@@ -792,6 +792,7 @@ static inline void skip_dash(dibdrv_physdev *pdev, unsigned int skip)
         pdev->dash_pos.left_in_dash = pdev->pen_pattern.dashes[pdev->dash_pos.cur_dash];
         pdev->dash_pos.mark = !pdev->dash_pos.mark;
     }
+    while (skip);
 }
 
 static void dashed_pen_line_callback(dibdrv_physdev *pdev, INT x, INT y)




More information about the wine-cvs mailing list