Commit f193637f63738eb451a6a23be70d763e78bc0c11

Werner Lemberg 2014-04-23T08:22:33

* src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode. This spot has been missed while introducing support for various drop-out modes years ago (including no drop-out mode, which this commit fixes). Problem reported by Patrick Thomas <pthomas505@gmail.com>.

diff --git a/ChangeLog b/ChangeLog
index dc78094..7be6820 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-04-23  Werner Lemberg  <wl@gnu.org>
+
+	* src/raster/ftraster.c (Vertical_Sweep_Span): Use drop-out mode.
+
+	This spot has been missed while introducing support for various
+	drop-out modes years ago (including no drop-out mode, which this
+	commit fixes).
+
+	Problem reported by Patrick Thomas <pthomas505@gmail.com>.
+
 2014-04-22  Werner Lemberg  <wl@gnu.org>
 
 	* src/sfnt/pngshim.c (error_callback): s/longjmp/ft_longjmp/.
diff --git a/src/raster/ftraster.c b/src/raster/ftraster.c
index ddecc80..8e5483b 100644
--- a/src/raster/ftraster.c
+++ b/src/raster/ftraster.c
@@ -2284,6 +2284,8 @@
     Long   e1, e2;
     Byte*  target;
 
+    Int  dropOutControl = left->flags & 7;
+
     FT_UNUSED( y );
     FT_UNUSED( left );
     FT_UNUSED( right );
@@ -2293,7 +2295,8 @@
 
     e1 = TRUNC( CEILING( x1 ) );
 
-    if ( x2 - x1 - ras.precision <= ras.precision_jitter )
+    if ( x2 - x1 - ras.precision <= ras.precision_jitter &&
+         dropOutControl != 2                             )
       e2 = e1;
     else
       e2 = TRUNC( FLOOR( x2 ) );