Module: wine Branch: master Commit: 618425ac4c405aaa28aa30d787e119ae6c605996 URL: http://source.winehq.org/git/wine.git/?a=commit;h=618425ac4c405aaa28aa30d787...
Author: Alexandre Julliard julliard@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)