shithub: freetype+ttf2subf

Download patch

ref: e845a85ea5fee7f4e6c2ebfc6266a0d8fe81426b
parent: 1a39944fa0a29b15ba563fe36178d071c97b4e24
author: Dave Arnold <[email protected]>
date: Thu Oct 3 19:04:29 EDT 2013

* src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-10-03  Dave Arnold  <[email protected]>
+
+	* src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
+
 2013-10-02  Darrell Bellert  <[email protected]>
 
 	* src/sfnt/ttload.c (tt_face_load_pclt): Fix `pclt_fields'.
--- a/src/cff/cf2font.c
+++ b/src/cff/cf2font.c
@@ -98,9 +98,15 @@
      */
 
     /* Internal calculations are done in units per thousand for */
-    /* convenience.                                             */
+    /* convenience. The x axis is scaled stem width in          */
+    /* thousandths of a pixel. That is, 1000 is 1 pixel.        */
+    /* The y axis is darkening amount in thousandths of a pixel.*/
+    /* In the code, below, dividing by ppem and                 */
+    /* adjusting for emRatio converts darkenAmount to character */
+    /* space (font units).                                      */
     CF2_Fixed  stemWidthPer1000, scaledStem;
 
+
     *darkenAmount = 0;
 
     if ( boldenAmount == 0 && !stemDarkened )
@@ -158,7 +164,7 @@
                            FT_DivFix( cf2_intToFixed( x1 ), ppem );
 
 
-        if ( !ydelta )
+        if ( !xdelta )
           goto Try_x3;
 
         *darkenAmount = FT_MulFix( x, FT_DivFix( ydelta, xdelta ) ) +
@@ -175,7 +181,7 @@
                              FT_DivFix( cf2_intToFixed( x2 ), ppem );
 
 
-          if ( !ydelta )
+          if ( !xdelta )
             goto Try_x4;
 
           *darkenAmount = FT_MulFix( x, FT_DivFix( ydelta, xdelta ) ) +
@@ -193,7 +199,7 @@
                              FT_DivFix( cf2_intToFixed( x3 ), ppem );
 
 
-          if ( !ydelta )
+          if ( !xdelta )
             goto Use_y4;
 
           *darkenAmount = FT_MulFix( x, FT_DivFix( ydelta, xdelta ) ) +