Jon Ciesla bf231a
From efd33aad5e69f36ab343b1f28839a55db4538104 Mon Sep 17 00:00:00 2001
Jon Ciesla 599c4e
From: Tom Hughes <tom@compton.nu>
Jon Ciesla 599c4e
Date: Sun, 19 May 2013 10:55:37 +0100
Jon Ciesla bf231a
Subject: [PATCH 01/15] Fix non-terminating loop conditions when len=1
Jon Ciesla 599c4e
Jon Ciesla 599c4e
-   while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
Jon Ciesla 599c4e
+   while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
Jon Ciesla 599c4e
    {
Jon Ciesla 599c4e
        sx = (lp.x1 + sx) >> 1;
Jon Ciesla 599c4e
        sy = (lp.y1 + sy) >> 1;
Jon Ciesla 599c4e
    }
Jon Ciesla 599c4e
---
Jon Ciesla 599c4e
 include/agg_renderer_outline_aa.h    | 8 ++++----
Jon Ciesla 599c4e
 include/agg_renderer_outline_image.h | 4 ++--
Jon Ciesla 599c4e
 2 files changed, 6 insertions(+), 6 deletions(-)
Jon Ciesla 599c4e
Jon Ciesla 599c4e
diff --git a/include/agg_renderer_outline_aa.h b/include/agg_renderer_outline_aa.h
Jon Ciesla 599c4e
index ce25a2e..cb2aa00 100644
Jon Ciesla 599c4e
--- a/include/agg_renderer_outline_aa.h
Jon Ciesla 599c4e
+++ b/include/agg_renderer_outline_aa.h
Jon Ciesla 599c4e
@@ -1659,7 +1659,7 @@ namespace agg
Jon Ciesla 599c4e
                         }
Jon Ciesla 599c4e
                         else
Jon Ciesla 599c4e
                         {
Jon Ciesla 599c4e
-                            while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
Jon Ciesla 599c4e
+                            while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
Jon Ciesla 599c4e
                             {
Jon Ciesla 599c4e
                                 sx = (lp.x1 + sx) >> 1;
Jon Ciesla 599c4e
                                 sy = (lp.y1 + sy) >> 1;
Jon Ciesla 599c4e
@@ -1726,7 +1726,7 @@ namespace agg
Jon Ciesla 599c4e
                         }
Jon Ciesla 599c4e
                         else
Jon Ciesla 599c4e
                         {
Jon Ciesla 599c4e
-                            while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len)
Jon Ciesla 599c4e
+                            while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len)
Jon Ciesla 599c4e
                             {
Jon Ciesla 599c4e
                                 ex = (lp.x2 + ex) >> 1;
Jon Ciesla 599c4e
                                 ey = (lp.y2 + ey) >> 1;
Jon Ciesla 599c4e
@@ -1798,7 +1798,7 @@ namespace agg
Jon Ciesla 599c4e
                         }
Jon Ciesla 599c4e
                         else
Jon Ciesla 599c4e
                         {
Jon Ciesla 599c4e
-                            while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
Jon Ciesla 599c4e
+                            while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
Jon Ciesla 599c4e
                             {
Jon Ciesla 599c4e
                                 sx = (lp.x1 + sx) >> 1;
Jon Ciesla 599c4e
                                 sy = (lp.y1 + sy) >> 1;
Jon Ciesla 599c4e
@@ -1811,7 +1811,7 @@ namespace agg
Jon Ciesla 599c4e
                         }
Jon Ciesla 599c4e
                         else
Jon Ciesla 599c4e
                         {
Jon Ciesla 599c4e
-                            while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len)
Jon Ciesla 599c4e
+                            while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len)
Jon Ciesla 599c4e
                             {
Jon Ciesla 599c4e
                                 ex = (lp.x2 + ex) >> 1;
Jon Ciesla 599c4e
                                 ey = (lp.y2 + ey) >> 1;
Jon Ciesla 599c4e
diff --git a/include/agg_renderer_outline_image.h b/include/agg_renderer_outline_image.h
Jon Ciesla 599c4e
index fbfac10..66d2b9a 100644
Jon Ciesla 599c4e
--- a/include/agg_renderer_outline_image.h
Jon Ciesla 599c4e
+++ b/include/agg_renderer_outline_image.h
Jon Ciesla 599c4e
@@ -969,7 +969,7 @@ namespace agg
Jon Ciesla 599c4e
                         }
Jon Ciesla 599c4e
                         else
Jon Ciesla 599c4e
                         {
Jon Ciesla 599c4e
-                            while(abs(sx - lp.x1) + abs(sy - lp.y1) > lp2.len)
Jon Ciesla 599c4e
+                            while(abs(sx - lp.x1) + abs(sy - lp.y1) > 1 + lp2.len)
Jon Ciesla 599c4e
                             {
Jon Ciesla 599c4e
                                 sx = (lp.x1 + sx) >> 1;
Jon Ciesla 599c4e
                                 sy = (lp.y1 + sy) >> 1;
Jon Ciesla 599c4e
@@ -982,7 +982,7 @@ namespace agg
Jon Ciesla 599c4e
                         }
Jon Ciesla 599c4e
                         else
Jon Ciesla 599c4e
                         {
Jon Ciesla 599c4e
-                            while(abs(ex - lp.x2) + abs(ey - lp.y2) > lp2.len)
Jon Ciesla 599c4e
+                            while(abs(ex - lp.x2) + abs(ey - lp.y2) > 1 + lp2.len)
Jon Ciesla 599c4e
                             {
Jon Ciesla 599c4e
                                 ex = (lp.x2 + ex) >> 1;
Jon Ciesla 599c4e
                                 ey = (lp.y2 + ey) >> 1;
Jon Ciesla 599c4e
-- 
Jon Ciesla 599c4e
1.8.1.4
Jon Ciesla 599c4e