shithub: freetype+ttf2subf

Download patch

ref: 17b6291d26d0ca5198e395e850428595a24b8054
parent: 24e4e96aff8885c2b5666c2f5fe6d1f112275d4e
author: Werner Lemberg <wl@gnu.org>
date: Wed Feb 25 02:53:09 EST 2015

[gxvalid] Signedness fixes.

* src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2015-02-25  Werner Lemberg  <wl@gnu.org>
 
+	[gxvalid] Signedness fixes.
+
+	* src/gxvalid/gxvbsln.c, src/gxvalid/gxvcommn.c,
+	src/gxvalid/gxvcommn.h, src/gxvalid/gxvjust.c,
+	src/gxvalid/gxvkern.c, src/gxvalid/gxvlcar.c, src/gxvalid/gxvmort.c,
+	src/gxvalid/gxvmort1.c, src/gxvalid/gxvmort2.c,
+	src/gxvalid/gxvmorx.c, src/gxvalid/gxvmorx1.c,
+	src/gxvalid/gxvmorx2.c, src/gxvalid/gxvopbd.c,
+	src/gxvalid/gxvprop.c, src/gxvalid/gxvtrak.c: Apply.
+
+2015-02-25  Werner Lemberg  <wl@gnu.org>
+
 	[cache] Signedness fixes.
 
 	* src/cache/ftcbasic.c, src/cache/ftccmap.c, src/cache/ftcimage.c,
@@ -35,7 +47,7 @@
 	is a better choice for `hash' to hold a pointer than `FT_PtrDist'
 	(a.k.a. `ptrdiff_t'), especially since the latter is signed,
 	causing zillions of signedness warnings.  [Note that `hash' was of
-	type `FT_UInt32' before the change to `FT_PtrDist.]
+	type `FT_UInt32' before the change to `FT_PtrDist'.]
 	Update all users.
 
 	* src/cache/ftcbasic.c, src/cache/ftccache.c, src/cache/ftccmap.c,
--- a/src/gxvalid/gxvbsln.c
+++ b/src/gxvalid/gxvbsln.c
@@ -227,7 +227,7 @@
           FT_INVALID_DATA;
       }
       else
-        gxv_ctlPoint_validate( stdGlyph, (FT_Short)ctlPoint, gxvalid );
+        gxv_ctlPoint_validate( stdGlyph, ctlPoint, gxvalid );
     }
 
     GXV_EXIT;
--- a/src/gxvalid/gxvcommn.c
+++ b/src/gxvalid/gxvcommn.c
@@ -202,7 +202,7 @@
       *max = (FT_Byte)FT_MAX( *max, val );
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -231,7 +231,7 @@
       *max = (FT_Byte)FT_MAX( *max, val );
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -367,7 +367,7 @@
     if ( *nUnits_p == 0 )
       *nUnits_p = binSrchHeader.nUnits;
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -449,7 +449,7 @@
       gxvalid->lookupval_func( i, &value, gxvalid );
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -486,7 +486,7 @@
       p += unitSize;
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -555,7 +555,7 @@
     gxv_LookupTable_fmt2_skip_endmarkers( p, unitSize, gxvalid );
     p += gxvalid->subtable_length;
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -636,7 +636,7 @@
     gxv_LookupTable_fmt2_skip_endmarkers( p, unitSize, gxvalid );
     p += gxvalid->subtable_length;
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -657,7 +657,7 @@
       p += unitSize;
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -709,7 +709,7 @@
     gxv_LookupTable_fmt6_skip_endmarkers( p, unitSize, gxvalid );
     p += gxvalid->subtable_length;
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -746,7 +746,7 @@
       gxvalid->lookupval_func( (FT_UShort)( firstGlyph + i ), &value, gxvalid );
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -795,7 +795,7 @@
     func( p, limit, gxvalid );
     p += gxvalid->subtable_length;
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
@@ -844,7 +844,7 @@
 
   FT_LOCAL_DEF( void )
   gxv_ctlPoint_validate( FT_UShort      gid,
-                         FT_Short       ctl_point,
+                         FT_UShort      ctl_point,
                          GXV_Validator  gxvalid )
   {
     FT_Face       face;
@@ -852,7 +852,7 @@
 
     FT_GlyphSlot  glyph;
     FT_Outline    outline;
-    short         n_points;
+    FT_UShort     n_points;
 
 
     face = gxvalid->face;
@@ -865,9 +865,8 @@
 
     glyph    = face->glyph;
     outline  = glyph->outline;
-    n_points = outline.n_points;
+    n_points = (FT_UShort)outline.n_points;
 
-
     if ( !( ctl_point < n_points ) )
       FT_INVALID_DATA;
   }
@@ -1449,7 +1448,7 @@
     GXV_TRACE(( "parsed: maxState=%d, maxEntry=%d\n",
                 *maxState_p, *maxEntry_p ));
 
-    *length_p = p - table;
+    *length_p = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
@@ -1550,7 +1549,7 @@
     }
 
   Exit:
-    *length_p = p - table;
+    *length_p = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
@@ -1605,7 +1604,7 @@
     else
       setup_func = gxv_XStateTable_subtable_setup;
 
-    setup_func( limit - table,
+    setup_func( (FT_ULong)( limit - table ),
                 classTable,
                 stateArray,
                 entryTable,
--- a/src/gxvalid/gxvcommn.h
+++ b/src/gxvalid/gxvcommn.h
@@ -404,7 +404,7 @@
 
   FT_LOCAL( void )
   gxv_ctlPoint_validate( FT_UShort      gid,
-                         FT_Short       ctl_point,
+                         FT_UShort      ctl_point,
                          GXV_Validator  gxvalid );
 
 
--- a/src/gxvalid/gxvjust.c
+++ b/src/gxvalid/gxvjust.c
@@ -121,7 +121,7 @@
       GXV_SET_ERR_IF_PARANOID( FT_INVALID_DATA );
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -143,7 +143,7 @@
       p += gxvalid->subtable_length;
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -168,7 +168,7 @@
       p += gxvalid->subtable_length;
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
@@ -192,8 +192,8 @@
 
 
     GXV_LIMIT_CHECK( 4 + 4 + 2 + 2 );
-    lowerLimit      = FT_NEXT_ULONG( p );
-    upperLimit      = FT_NEXT_ULONG( p );
+    lowerLimit      = FT_NEXT_LONG( p );
+    upperLimit      = FT_NEXT_LONG( p );
 #ifdef GXV_LOAD_UNUSED_VARS
     order           = FT_NEXT_USHORT( p );
 #else
@@ -218,7 +218,7 @@
       gxv_just_check_max_gid( glyphs, "type0:glyphs", gxvalid );
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -236,7 +236,7 @@
 
     gxv_just_check_max_gid( addGlyph, "type1:addGlyph", gxvalid );
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -267,7 +267,7 @@
 
     gxv_just_check_max_gid( substGlyph, "type2:substGlyph", gxvalid );
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -285,11 +285,11 @@
 
     GXV_LIMIT_CHECK( 4 + 4 + 4 + 4 );
     variantsAxis   = FT_NEXT_ULONG( p );
-    minimumLimit   = FT_NEXT_ULONG( p );
-    noStretchValue = FT_NEXT_ULONG( p );
-    maximumLimit   = FT_NEXT_ULONG( p );
+    minimumLimit   = FT_NEXT_LONG( p );
+    noStretchValue = FT_NEXT_LONG( p );
+    maximumLimit   = FT_NEXT_LONG( p );
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     if ( variantsAxis != 0x64756374L ) /* 'duct' */
       GXV_TRACE(( "variantsAxis 0x%08x is non default value",
@@ -327,7 +327,7 @@
                    flags ));
     gxv_just_check_max_gid( glyph, "type5:glyph", gxvalid );
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
   }
 
 
@@ -395,7 +395,7 @@
       p += gxvalid->subtable_length;
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
@@ -454,7 +454,7 @@
     gxv_just_pcActionRecord_validate( p, limit, gxvalid );
     p += gxvalid->subtable_length;
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
@@ -677,7 +677,8 @@
     format      = FT_NEXT_USHORT( p );
     horizOffset = FT_NEXT_USHORT( p );
     vertOffset  = FT_NEXT_USHORT( p );
-    gxv_odtect_add_range( table, p - table, "just header", odtect );
+    gxv_odtect_add_range( table, (FT_ULong)( p - table ),
+                          "just header", odtect );
 
 
     /* Version 1.0 (always:2000) */
--- a/src/gxvalid/gxvkern.c
+++ b/src/gxvalid/gxvkern.c
@@ -549,7 +549,7 @@
       }
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
@@ -779,7 +779,7 @@
 #ifdef GXV_LOAD_TRACE_VARS
       version    = 0;
 #endif
-      length     = ( u16[0] << 16 ) + u16[1];
+      length     = ( (FT_ULong)u16[0] << 16 ) + u16[1];
 #ifdef GXV_LOAD_TRACE_VARS
       tupleIndex = 0;
 #endif
--- a/src/gxvalid/gxvlcar.c
+++ b/src/gxvalid/gxvlcar.c
@@ -66,7 +66,7 @@
   /*************************************************************************/
 
   static void
-  gxv_lcar_partial_validate( FT_UShort      partial,
+  gxv_lcar_partial_validate( FT_Short       partial,
                              FT_UShort      glyph,
                              GXV_Validator  gxvalid )
   {
@@ -75,7 +75,7 @@
     if ( GXV_LCAR_DATA( format ) != 1 )
       goto Exit;
 
-    gxv_ctlPoint_validate( glyph, partial, gxvalid );
+    gxv_ctlPoint_validate( glyph, (FT_UShort)partial, gxvalid );
 
   Exit:
     GXV_EXIT;
@@ -203,7 +203,7 @@
     GXV_INIT;
 
     GXV_LIMIT_CHECK( 4 + 2 );
-    version = FT_NEXT_ULONG( p );
+    version = FT_NEXT_LONG( p );
     GXV_LCAR_DATA( format ) = FT_NEXT_USHORT( p );
 
     if ( version != 0x00010000UL)
--- a/src/gxvalid/gxvmort.c
+++ b/src/gxvalid/gxvmort.c
@@ -113,7 +113,7 @@
     if ( !IS_GXV_MORT_FEATURE_OFF( f ) )
       FT_INVALID_DATA;
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -214,7 +214,7 @@
       /* TODO: validate subFeatureFlags */
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
--- a/src/gxvalid/gxvmort1.c
+++ b/src/gxvalid/gxvmort1.c
@@ -156,7 +156,7 @@
     setMark       = (FT_UShort)(   flags >> 15            );
     dontAdvance   = (FT_UShort)( ( flags >> 14 ) & 1      );
 #endif
-    reserved      = (FT_Short)(    flags         & 0x3FFF );
+    reserved      = (FT_UShort)(    flags        & 0x3FFF );
 
     markOffset    = (FT_Short)( glyphOffset_p->ul >> 16 );
     currentOffset = (FT_Short)( glyphOffset_p->ul       );
--- a/src/gxvalid/gxvmort2.c
+++ b/src/gxvalid/gxvmort2.c
@@ -303,7 +303,7 @@
     p += gxvalid->subtable_length;
     gxv_mort_subtable_type2_ligatureTable_validate( table, gxvalid );
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
--- a/src/gxvalid/gxvmorx.c
+++ b/src/gxvalid/gxvmorx.c
@@ -107,7 +107,7 @@
       p += rest;
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
 
     GXV_EXIT;
   }
--- a/src/gxvalid/gxvmorx1.c
+++ b/src/gxvalid/gxvmorx1.c
@@ -149,11 +149,11 @@
 
     if ( optdata->substitutionTable_num_lookupTables < markIndex + 1 )
       optdata->substitutionTable_num_lookupTables =
-        (FT_Short)( markIndex + 1 );
+        (FT_UShort)( markIndex + 1 );
 
     if ( optdata->substitutionTable_num_lookupTables < currentIndex + 1 )
       optdata->substitutionTable_num_lookupTables =
-        (FT_Short)( currentIndex + 1 );
+        (FT_UShort)( currentIndex + 1 );
   }
 
 
--- a/src/gxvalid/gxvmorx2.c
+++ b/src/gxvalid/gxvmorx2.c
@@ -189,7 +189,8 @@
       /* it is different from the location offset in mort */
       if ( ( offset & 0x3FFF0000UL ) == 0x3FFF0000UL )
       { /* negative offset */
-        gid_limit = gxvalid->face->num_glyphs - ( offset & 0x0000FFFFUL );
+        gid_limit = gxvalid->face->num_glyphs -
+                    (FT_Long)( offset & 0x0000FFFFUL );
         if ( gid_limit > 0 )
           return;
 
--- a/src/gxvalid/gxvopbd.c
+++ b/src/gxvalid/gxvopbd.c
@@ -91,7 +91,7 @@
         if ( delta_value == -1 )
           continue;
 
-        gxv_ctlPoint_validate( glyph, delta_value, gxvalid );
+        gxv_ctlPoint_validate( glyph, (FT_UShort)delta_value, gxvalid );
       }
       else                              /* format 0, value is distance */
         continue;
--- a/src/gxvalid/gxvprop.c
+++ b/src/gxvalid/gxvprop.c
@@ -279,7 +279,7 @@
     GXV_INIT;
 
     GXV_LIMIT_CHECK( 4 + 2 + 2 );
-    version     = FT_NEXT_ULONG( p );
+    version     = FT_NEXT_LONG( p );
     format      = FT_NEXT_USHORT( p );
     defaultProp = FT_NEXT_USHORT( p );
 
--- a/src/gxvalid/gxvtrak.c
+++ b/src/gxvalid/gxvtrak.c
@@ -135,7 +135,7 @@
       }
     }
 
-    gxvalid->subtable_length = p - table;
+    gxvalid->subtable_length = (FT_ULong)( p - table );
     GXV_EXIT;
   }
 
@@ -162,7 +162,8 @@
     nSizes          = FT_NEXT_USHORT( p );
     sizeTableOffset = FT_NEXT_ULONG( p );
 
-    gxv_odtect_add_range( table, p - table, "trackData header", odtect );
+    gxv_odtect_add_range( table, (FT_ULong)( p - table ),
+                          "trackData header", odtect );
 
     /* validate trackTable */
     gxv_trak_trackTable_validate( p, limit, nTracks, gxvalid );