shithub: freetype+ttf2subf

Download patch

ref: eb6d02087b9f540372049eff2721ac6aff837232
parent: 8f633a08f1b7e5f64d2afd3805f6fb491f8c7086
author: Werner Lemberg <[email protected]>
date: Sun Dec 18 04:29:58 EST 2016

Minor GX code shuffling.

* include/freetype/internal/tttypes.h (TT_Face): Move
`is_default_instance' into TT_CONFIG_OPTION_GX_VAR_SUPPORT
block.

* src/sfnt/sfobjs.c (sfnt_init_face): Updated.
* src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): New macro.
(TT_Load_Glyph): Use it.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2016-12-18  Werner Lemberg  <[email protected]>
 
+	Minor GX code shuffling.
+
+	* include/freetype/internal/tttypes.h (TT_Face): Move
+	`is_default_instance' into TT_CONFIG_OPTION_GX_VAR_SUPPORT
+	block.
+
+	* src/sfnt/sfobjs.c (sfnt_init_face): Updated.
+	* src/truetype/ttgload.c (IS_DEFAULT_INSTANCE): New macro.
+	(TT_Load_Glyph): Use it.
+
+2016-12-18  Werner Lemberg  <[email protected]>
+
 	[cff] Better handling of non-CFF font formats.
 
 	* src/cff/cffload.c (cff_font_load): Pure CFFs don't have a
--- a/include/freetype/internal/tttypes.h
+++ b/include/freetype/internal/tttypes.h
@@ -1230,6 +1230,10 @@
   /*                            variation tables (rather like Multiple     */
   /*                            Master data).                              */
   /*                                                                       */
+  /*    is_default_instance  :: Set if the glyph outlines can be used      */
+  /*                            unmodified (i.e., without applying glyph   */
+  /*                            variation deltas).                         */
+  /*                                                                       */
   /*    horz_metrics_size    :: The size of the `hmtx' table.              */
   /*                                                                       */
   /*    vert_metrics_size    :: The size of the `vmtx' table.              */
@@ -1304,10 +1308,6 @@
   /*                                                                       */
   /*    ebdt_size            :: The size of the sbit data table.           */
   /*                                                                       */
-  /*    is_default_instance  :: Set if the glyph outlines can be used      */
-  /*                            unmodified (i.e., without applying glyph   */
-  /*                            variation deltas).                         */
-  /*                                                                       */
   typedef struct  TT_FaceRec_
   {
     FT_FaceRec            root;
@@ -1424,6 +1424,8 @@
 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
     FT_Bool               doblend;
     GX_Blend              blend;
+
+    FT_Bool               is_default_instance;   /* since 2.7.1 */
 #endif
 
     /* since version 2.2 */
@@ -1472,9 +1474,6 @@
     FT_ULong              ebdt_start;  /* either `CBDT', `EBDT', or `bdat' */
     FT_ULong              ebdt_size;
 #endif
-
-    /* since 2.7.1 */
-    FT_Bool               is_default_instance;
 
   } TT_FaceRec;
 
--- a/src/sfnt/sfobjs.c
+++ b/src/sfnt/sfobjs.c
@@ -925,8 +925,6 @@
     if ( error )
       return error;
 
-    face->is_default_instance = 1;
-
 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
     {
       FT_ULong  fvar_len;
@@ -941,6 +939,8 @@
 
       FT_Int  instance_index;
 
+
+      face->is_default_instance = 1;
 
       instance_index = FT_ABS( face_instance_index ) >> 16;
 
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -2566,9 +2566,14 @@
   {
     FT_Error      error;
     TT_LoaderRec  loader;
-    TT_Face       face = (TT_Face)glyph->face;
 
+#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
+#define IS_DEFAULT_INSTANCE  ( ( (TT_Face)glyph->face )->is_default_instance )
+#else
+#define IS_DEFAULT_INSTANCE  1
+#endif
 
+
     FT_TRACE1(( "TT_Load_Glyph: glyph index %d\n", glyph_index ));
 
 #ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
@@ -2576,7 +2581,7 @@
     /* try to load embedded bitmap (if any) */
     if ( size->strike_index != 0xFFFFFFFFUL      &&
          ( load_flags & FT_LOAD_NO_BITMAP ) == 0 &&
-         face->is_default_instance               )
+         IS_DEFAULT_INSTANCE                     )
     {
       error = load_sbit_image( size, glyph, glyph_index, load_flags );
       if ( !error )