Commit 71b8f3f2ed06ce2a437b31e34c75e6aeab781640

Werner Lemberg 2008-07-04T07:22:06

* src/raster/ftraster.c (Draw_Sweep): If span is smaller than one pixel, only check for dropouts if neither start nor end point lies on a pixel center. This fixes Savannah bug #23762.

diff --git a/ChangeLog b/ChangeLog
index b507fa8..4277f62 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-07-04  Werner Lemberg  <wl@gnu.org>
+
+	* src/raster/ftraster.c (Draw_Sweep): If span is smaller than one
+	pixel, only check for dropouts if neither start nor end point lies
+	on a pixel center.  This fixes Savannah bug #23762.
+
 2008-06-29  Werner Lemberg  <wl@gnu.org>
 
 	* Version 2.3.7 released.
diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c
index 8f01474..978eec3 100644
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -2867,11 +2867,12 @@ static const char  count_table[256] =
             x2 = xs;
           }
 
-          if ( x2 - x1 <= ras.precision )
-          {
-            e1 = FLOOR( x1 );
-            e2 = CEILING( x2 );
+          e1 = FLOOR( x1 );
+          e2 = CEILING( x2 );
 
+          if ( x2 - x1 <= ras.precision &&
+               e1 != x1 && e2 != x2     )
+          {
             if ( e1 > e2 || e2 == e1 + ras.precision )
             {
               if ( ras.dropOutControl != 2 )