Commit 09d55ceabff22dbe0572e692ac36b729cd42b1b7

David Turner 2001-05-11T18:08:58

* src/cff/cffparse.c, src/cid/cidload.c, src/type1/t1load.c: fixed the incorrect EM size computation

diff --git a/ChangeLog b/ChangeLog
index 6d94979..97febf8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2001-05-11  David Turner  <david@freetype.org>
 
+    * src/cff/cffparse.c, src/cid/cidload.c, src/type1/t1load.c: fixed
+    the incorrect EM size computation
+
     * include/freetype/fttrigon.h, src/base/fttrigon.c, src/base/ftbase.c,
     src/base/Jamfile, src/base/rules.mk: adding trigonometric functions
     to the core API (using Cordic algorithms).
diff --git a/src/cff/cffparse.c b/src/cff/cffparse.c
index 9570ce2..833676b 100644
--- a/src/cff/cffparse.c
+++ b/src/cff/cffparse.c
@@ -334,8 +334,7 @@
 
       temp = ABS( matrix->yy );
 
-      *upm = (FT_UShort)( FT_DivFix( 0x10000L,
-                          FT_DivFix( temp, 1000 ) ) >> 16 );
+      *upm = (FT_UShort)FT_DivFix( 0x10000L, FT_DivFix( temp, 1000 ) );
 
       if ( temp != 0x10000L )
       {
diff --git a/src/cid/cidload.c b/src/cid/cidload.c
index 06bdffe..5e7b188 100644
--- a/src/cid/cidload.c
+++ b/src/cid/cidload.c
@@ -201,7 +201,7 @@
       /* `1000/temp_scale', because temp_scale was already multiplied by   */
       /* 1000 (in t1_tofixed(), from psobjs.c).                            */
       root->units_per_EM = (FT_UShort)( FT_DivFix( 0x10000L,
-                                        FT_DivFix( temp_scale, 1000 ) ) >> 16 );
+                                        FT_DivFix( temp_scale, 1000 ) ) );
 
       /* we need to scale the values by 1.0/temp[3] */
       if ( temp_scale != 0x10000L )
diff --git a/src/type1/t1load.c b/src/type1/t1load.c
index 2691b9b..b848c97 100644
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -895,8 +895,8 @@
     /* 1000 / temp_scale, because temp_scale was already multiplied by  */
     /* 1000 (in t1_tofixed, from psobjs.c).                             */
 
-    root->units_per_EM = (FT_UShort)( FT_DivFix( 0x10000L,
-                                      FT_DivFix( temp_scale, 1000 ) ) >> 16 );
+    root->units_per_EM = (FT_UShort)FT_DivFix( 0x10000L,
+                                               FT_DivFix( temp_scale, 1000 ) );
 
     /* we need to scale the values by 1.0/temp_scale */
     if ( temp_scale != 0x10000L )
@@ -1194,7 +1194,7 @@
       return;
 
     /* initialize tables (leaving room for addition of .notdef, */
-    /* if necessary).                                           */ 
+    /* if necessary).                                           */
 
     error = psaux->ps_table_funcs->init( code_table,
                                          loader->num_glyphs + 1,