freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Devel] Some fixes and bug reports.


From: 山内 英敏
Subject: [Devel] Some fixes and bug reports.
Date: Tue, 28 Nov 2000 23:10:29 +0900

Hello,

Here are few fixes on freetype2

* fix FT_Get_Sfnt_Name_Count works correctly.
* fix to compile with #undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER.

And I found a bug on truetype driver.

When FT_LOAD_NO_SCALE is true in load_flags (e.g. when we using
autohiner), *ALL* embedded bitmaps are ignored.  I found the reason in
Load_Glyph on freetype2/src/truetype/ttdriver.c:313,
-----
    if ( load_flags & FT_LOAD_NO_SCALE )
      size = NULL;
-----
in this case, we cannot find appropriate size of embedded bitmaps.
We should fix this bug but I do not know any good solutions yet.
And I am busy now.....

---- YAMANO-UCHI Hidetoshi

diff -ur ../freetype2/src/base/ftnames.c freetype2/src/base/ftnames.c
--- ../freetype2/src/base/ftnames.c     Thu Nov 23 00:58:11 2000
+++ freetype2/src/base/ftnames.c        Sun Nov 26 22:32:49 2000
@@ -30,7 +30,7 @@
 
   FT_EXPORT_DEF( FT_UInt )  FT_Get_Sfnt_Name_Count( FT_Face  face )
   {
-    return face && ( FT_IS_SFNT( face ) ? ((TT_Face)face)->num_names : 0 );
+    return (face && FT_IS_SFNT( face )) ? ((TT_Face)face)->num_names : 0;
   }
 
 
diff -ur ../freetype2/src/truetype/ttobjs.c freetype2/src/truetype/ttobjs.c
--- ../freetype2/src/truetype/ttobjs.c  Tue Nov  7 12:24:52 2000
+++ freetype2/src/truetype/ttobjs.c     Sun Nov 26 22:08:34 2000
@@ -453,8 +453,7 @@
     size->ttmetrics.valid = FALSE;
     return error;
 
-#if defined( TT_CONFIG_OPTION_BYTECODE_INTERPRETER ) || \
-    defined( TT_CONFIG_OPTION_EMBEDDED_BITMAPS )
+#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
 
   Fail_Exec:
     if ( !size->debug )
@@ -585,13 +584,13 @@
     metrics->max_advance = ( FT_MulFix( face->root.max_advance_width,
                                         metrics->x_scale ) + 32 ) & -64;
 
-#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
     /* set to `invalid' by default */
     size->strike_index = 0xFFFF;
 #endif
 
+#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
+
     {
       TT_ExecContext  exec;
       FT_UInt         i, j;
@@ -795,16 +794,11 @@
 
     if ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
     {
-      FT_Size_Metrics* sbit_metrics;
-
-
       if ( size->strike_index == 0xFFFF )
         error = Reset_SBit_Size( size );
 
-      sbit_metrics = &size->strike_metrics;
-
       if ( !error && !( face->face_flags & FT_FACE_FLAG_SCALABLE ) )
-        size->root.metrics = *sbit_metrics;
+        size->root.metrics = size->strike_metrics;
     }
 
 #endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]