Werner Lemberg pushed to branch master at FreeType / FreeType
Commits:
-
bb4e049a
by Werner Lemberg at 2021-11-08T08:22:13+01:00
-
7ef26604
by Werner Lemberg at 2021-11-08T08:56:37+01:00
-
cce78228
by Werner Lemberg at 2021-11-08T09:41:54+01:00
-
b86f96bc
by Werner Lemberg at 2021-11-08T11:44:02+01:00
23 changed files:
- src/gxvalid/gxvcommn.c
- src/gxvalid/gxvcommn.h
- src/gxvalid/gxvfeat.c
- src/gxvalid/gxvjust.c
- src/gxvalid/gxvkern.c
- src/gxvalid/gxvmort.c
- src/gxvalid/gxvmort2.c
- src/gxvalid/gxvmorx.c
- src/gxvalid/gxvmorx2.c
- src/gxvalid/gxvopbd.c
- src/gxvalid/gxvprop.c
- src/gxvalid/gxvtrak.c
- src/otvalid/otvcommn.h
- src/otvalid/otvmod.c
- src/pshinter/pshalgo.c
- src/sfnt/sfobjs.c
- src/sfnt/sfwoff.c
- src/sfnt/sfwoff.h
- src/sfnt/sfwoff2.c
- src/sfnt/sfwoff2.h
- src/sfnt/woff2tags.c
- src/sfnt/woff2tags.h
- src/truetype/ttobjs.c
Changes:
... | ... | @@ -438,7 +438,7 @@ |
438 | 438 |
GXV_LIMIT_CHECK( 2 );
|
439 | 439 |
if ( p + 2 >= limit ) /* some fonts have too-short fmt0 array */
|
440 | 440 |
{
|
441 |
- GXV_TRACE(( "too short, glyphs %d - %d are missing\n",
|
|
441 |
+ GXV_TRACE(( "too short, glyphs %d - %ld are missing\n",
|
|
442 | 442 |
i, gxvalid->face->num_glyphs ));
|
443 | 443 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_GLYPH_ID );
|
444 | 444 |
break;
|
... | ... | @@ -533,7 +533,7 @@ |
533 | 533 |
|
534 | 534 |
if ( lastGlyph < firstGlyph )
|
535 | 535 |
{
|
536 |
- GXV_TRACE(( "reverse ordered range specification at unit %d:",
|
|
536 |
+ GXV_TRACE(( "reverse ordered range specification at unit %d:"
|
|
537 | 537 |
" lastGlyph %d < firstGlyph %d ",
|
538 | 538 |
unit, lastGlyph, firstGlyph ));
|
539 | 539 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_GLYPH_ID );
|
... | ... | @@ -604,7 +604,7 @@ |
604 | 604 |
|
605 | 605 |
if ( lastGlyph < firstGlyph )
|
606 | 606 |
{
|
607 |
- GXV_TRACE(( "reverse ordered range specification at unit %d:",
|
|
607 |
+ GXV_TRACE(( "reverse ordered range specification at unit %d:"
|
|
608 | 608 |
" lastGlyph %d < firstGlyph %d ",
|
609 | 609 |
unit, lastGlyph, firstGlyph ));
|
610 | 610 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_GLYPH_ID );
|
... | ... | @@ -824,7 +824,7 @@ |
824 | 824 |
face = gxvalid->face;
|
825 | 825 |
if ( face->num_glyphs < gid )
|
826 | 826 |
{
|
827 |
- GXV_TRACE(( " gxv_glyphid_check() gid overflow: num_glyphs %d < %d\n",
|
|
827 |
+ GXV_TRACE(( " gxv_glyphid_check() gid overflow: num_glyphs %ld < %d\n",
|
|
828 | 828 |
face->num_glyphs, gid ));
|
829 | 829 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_GLYPH_ID );
|
830 | 830 |
}
|
... | ... | @@ -1418,7 +1418,7 @@ |
1418 | 1418 |
GXV_NAME_ENTER( "XStateArray" );
|
1419 | 1419 |
|
1420 | 1420 |
GXV_TRACE(( "parse % 3d bytes by stateSize=% 3d maxClassID=% 3d\n",
|
1421 |
- (int)(*length_p), stateSize, (int)(maxClassID) ));
|
|
1421 |
+ (int)(*length_p), (int)stateSize, (int)(maxClassID) ));
|
|
1422 | 1422 |
|
1423 | 1423 |
/*
|
1424 | 1424 |
* 2 states are predefined and must be described:
|
... | ... | @@ -1582,10 +1582,10 @@ |
1582 | 1582 |
stateArray = FT_NEXT_ULONG( p );
|
1583 | 1583 |
entryTable = FT_NEXT_ULONG( p );
|
1584 | 1584 |
|
1585 |
- GXV_TRACE(( "nClasses =0x%08x\n", gxvalid->xstatetable.nClasses ));
|
|
1586 |
- GXV_TRACE(( "offset to classTable=0x%08x\n", classTable ));
|
|
1587 |
- GXV_TRACE(( "offset to stateArray=0x%08x\n", stateArray ));
|
|
1588 |
- GXV_TRACE(( "offset to entryTable=0x%08x\n", entryTable ));
|
|
1585 |
+ GXV_TRACE(( "nClasses =0x%08lx\n", gxvalid->xstatetable.nClasses ));
|
|
1586 |
+ GXV_TRACE(( "offset to classTable=0x%08lx\n", classTable ));
|
|
1587 |
+ GXV_TRACE(( "offset to stateArray=0x%08lx\n", stateArray ));
|
|
1588 |
+ GXV_TRACE(( "offset to entryTable=0x%08lx\n", entryTable ));
|
|
1589 | 1589 |
|
1590 | 1590 |
if ( gxvalid->xstatetable.nClasses > 0xFFFFU )
|
1591 | 1591 |
FT_INVALID_DATA;
|
... | ... | @@ -261,17 +261,17 @@ FT_BEGIN_HEADER |
261 | 261 |
} GXV_ValidatorRec;
|
262 | 262 |
|
263 | 263 |
|
264 |
-#define GXV_TABLE_DATA( tag, field ) \
|
|
264 |
+#define GXV_TABLE_DATA( tag, field ) \
|
|
265 | 265 |
( ( (GXV_ ## tag ## _Data)gxvalid->table_data )->field )
|
266 | 266 |
|
267 | 267 |
#undef FT_INVALID_
|
268 |
-#define FT_INVALID_( _error ) \
|
|
268 |
+#define FT_INVALID_( _error ) \
|
|
269 | 269 |
ft_validator_error( gxvalid->root, FT_THROW( _error ) )
|
270 | 270 |
|
271 |
-#define GXV_LIMIT_CHECK( _count ) \
|
|
272 |
- FT_BEGIN_STMNT \
|
|
271 |
+#define GXV_LIMIT_CHECK( _count ) \
|
|
272 |
+ FT_BEGIN_STMNT \
|
|
273 | 273 |
if ( p + _count > ( limit? limit : gxvalid->root->limit ) ) \
|
274 |
- FT_INVALID_TOO_SHORT; \
|
|
274 |
+ FT_INVALID_TOO_SHORT; \
|
|
275 | 275 |
FT_END_STMNT
|
276 | 276 |
|
277 | 277 |
|
... | ... | @@ -279,19 +279,19 @@ FT_BEGIN_HEADER |
279 | 279 |
|
280 | 280 |
#define GXV_INIT gxvalid->debug_indent = 0
|
281 | 281 |
|
282 |
-#define GXV_NAME_ENTER( name ) \
|
|
283 |
- FT_BEGIN_STMNT \
|
|
284 |
- gxvalid->debug_indent += 2; \
|
|
285 |
- FT_TRACE4(( "%*.s", gxvalid->debug_indent, 0 )); \
|
|
286 |
- FT_TRACE4(( "%s table\n", name )); \
|
|
282 |
+#define GXV_NAME_ENTER( name ) \
|
|
283 |
+ FT_BEGIN_STMNT \
|
|
284 |
+ gxvalid->debug_indent += 2; \
|
|
285 |
+ FT_TRACE4(( "%*.s", gxvalid->debug_indent, "" )); \
|
|
286 |
+ FT_TRACE4(( "%s table\n", name )); \
|
|
287 | 287 |
FT_END_STMNT
|
288 | 288 |
|
289 | 289 |
#define GXV_EXIT gxvalid->debug_indent -= 2
|
290 | 290 |
|
291 |
-#define GXV_TRACE( s ) \
|
|
292 |
- FT_BEGIN_STMNT \
|
|
293 |
- FT_TRACE4(( "%*.s", gxvalid->debug_indent, 0 )); \
|
|
294 |
- FT_TRACE4( s ); \
|
|
291 |
+#define GXV_TRACE( s ) \
|
|
292 |
+ FT_BEGIN_STMNT \
|
|
293 |
+ FT_TRACE4(( "%*.s", gxvalid->debug_indent, "" )); \
|
|
294 |
+ FT_TRACE4( s ); \
|
|
295 | 295 |
FT_END_STMNT
|
296 | 296 |
|
297 | 297 |
#else /* !FT_DEBUG_LEVEL_TRACE */
|
... | ... | @@ -90,7 +90,7 @@ |
90 | 90 |
|
91 | 91 |
if ( feature >= gxv_feat_registry_length )
|
92 | 92 |
{
|
93 |
- GXV_TRACE(( "feature number %d is out of range %d\n",
|
|
93 |
+ GXV_TRACE(( "feature number %d is out of range %lu\n",
|
|
94 | 94 |
feature, gxv_feat_registry_length ));
|
95 | 95 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_DATA );
|
96 | 96 |
goto Exit;
|
... | ... | @@ -78,7 +78,7 @@ |
78 | 78 |
return;
|
79 | 79 |
|
80 | 80 |
GXV_TRACE(( "just table includes too large %s"
|
81 |
- " GID=%d > %d (in maxp)\n",
|
|
81 |
+ " GID=%d > %ld (in maxp)\n",
|
|
82 | 82 |
msg_tag, gid, gxvalid->face->num_glyphs ));
|
83 | 83 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_GLYPH_ID );
|
84 | 84 |
}
|
... | ... | @@ -140,7 +140,7 @@ |
140 | 140 |
count = FT_NEXT_ULONG( p );
|
141 | 141 |
for ( i = 0; i < count; i++ )
|
142 | 142 |
{
|
143 |
- GXV_TRACE(( "validating wdc pair %d/%d\n", i + 1, count ));
|
|
143 |
+ GXV_TRACE(( "validating wdc pair %lu/%lu\n", i + 1, count ));
|
|
144 | 144 |
gxv_just_wdp_entry_validate( p, limit, gxvalid );
|
145 | 145 |
p += gxvalid->subtable_length;
|
146 | 146 |
}
|
... | ... | @@ -206,7 +206,8 @@ |
206 | 206 |
if ( lowerLimit >= upperLimit )
|
207 | 207 |
{
|
208 | 208 |
GXV_TRACE(( "just table includes invalid range spec:"
|
209 |
- " lowerLimit(%d) > upperLimit(%d)\n" ));
|
|
209 |
+ " lowerLimit(%ld) > upperLimit(%ld)\n",
|
|
210 |
+ lowerLimit, upperLimit ));
|
|
210 | 211 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_DATA );
|
211 | 212 |
}
|
212 | 213 |
|
... | ... | @@ -294,14 +295,14 @@ |
294 | 295 |
gxvalid->subtable_length = (FT_ULong)( p - table );
|
295 | 296 |
|
296 | 297 |
if ( variantsAxis != 0x64756374L ) /* 'duct' */
|
297 |
- GXV_TRACE(( "variantsAxis 0x%08x is non default value",
|
|
298 |
+ GXV_TRACE(( "variantsAxis 0x%08lx is non default value",
|
|
298 | 299 |
variantsAxis ));
|
299 | 300 |
|
300 | 301 |
if ( minimumLimit > noStretchValue )
|
301 |
- GXV_TRACE(( "type4:minimumLimit 0x%08x > noStretchValue 0x%08x\n",
|
|
302 |
+ GXV_TRACE(( "type4:minimumLimit 0x%08lx > noStretchValue 0x%08lx\n",
|
|
302 | 303 |
minimumLimit, noStretchValue ));
|
303 | 304 |
else if ( noStretchValue > maximumLimit )
|
304 |
- GXV_TRACE(( "type4:noStretchValue 0x%08x > maximumLimit 0x%08x\n",
|
|
305 |
+ GXV_TRACE(( "type4:noStretchValue 0x%08lx > maximumLimit 0x%08lx\n",
|
|
305 | 306 |
noStretchValue, maximumLimit ));
|
306 | 307 |
else if ( !IS_PARANOID_VALIDATION )
|
307 | 308 |
return;
|
... | ... | @@ -389,7 +390,7 @@ |
389 | 390 |
|
390 | 391 |
GXV_LIMIT_CHECK( 4 );
|
391 | 392 |
actionCount = FT_NEXT_ULONG( p );
|
392 |
- GXV_TRACE(( "actionCount = %d\n", actionCount ));
|
|
393 |
+ GXV_TRACE(( "actionCount = %lu\n", actionCount ));
|
|
393 | 394 |
|
394 | 395 |
for ( i = 0; i < actionCount; i++ )
|
395 | 396 |
{
|
... | ... | @@ -514,14 +515,14 @@ |
514 | 515 |
coverage = FT_NEXT_USHORT( p );
|
515 | 516 |
subFeatureFlags = FT_NEXT_ULONG( p );
|
516 | 517 |
|
517 |
- GXV_TRACE(( " justClassTable: coverage = 0x%04x (%s) ", coverage ));
|
|
518 |
+ GXV_TRACE(( " justClassTable: coverage = 0x%04x ", coverage ));
|
|
518 | 519 |
if ( ( coverage & 0x4000 ) == 0 )
|
519 | 520 |
GXV_TRACE(( "ascending\n" ));
|
520 | 521 |
else
|
521 | 522 |
GXV_TRACE(( "descending\n" ));
|
522 | 523 |
|
523 | 524 |
if ( subFeatureFlags )
|
524 |
- GXV_TRACE(( " justClassTable: nonzero value (0x%08x)"
|
|
525 |
+ GXV_TRACE(( " justClassTable: nonzero value (0x%08lx)"
|
|
525 | 526 |
" in unused subFeatureFlags\n", subFeatureFlags ));
|
526 | 527 |
|
527 | 528 |
gxvalid->statetable.optdata = NULL;
|
... | ... | @@ -684,7 +685,7 @@ |
684 | 685 |
|
685 | 686 |
|
686 | 687 |
/* Version 1.0 (always:2000) */
|
687 |
- GXV_TRACE(( " (version = 0x%08x)\n", version ));
|
|
688 |
+ GXV_TRACE(( " (version = 0x%08lx)\n", version ));
|
|
688 | 689 |
if ( version != 0x00010000UL )
|
689 | 690 |
FT_INVALID_FORMAT;
|
690 | 691 |
|
... | ... | @@ -487,7 +487,7 @@ |
487 | 487 |
|
488 | 488 |
if ( gxvalid->face->num_glyphs != glyphCount )
|
489 | 489 |
{
|
490 |
- GXV_TRACE(( "maxGID=%d, but glyphCount=%d\n",
|
|
490 |
+ GXV_TRACE(( "maxGID=%ld, but glyphCount=%d\n",
|
|
491 | 491 |
gxvalid->face->num_glyphs, glyphCount ));
|
492 | 492 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_GLYPH_ID );
|
493 | 493 |
}
|
... | ... | @@ -772,7 +772,7 @@ |
772 | 772 |
tupleIndex = 0;
|
773 | 773 |
#endif
|
774 | 774 |
GXV_TRACE(( "Subtable version = %d\n", version ));
|
775 |
- GXV_TRACE(( "Subtable length = %d\n", length ));
|
|
775 |
+ GXV_TRACE(( "Subtable length = %lu\n", length ));
|
|
776 | 776 |
break;
|
777 | 777 |
|
778 | 778 |
case KERN_DIALECT_APPLE:
|
... | ... | @@ -783,7 +783,7 @@ |
783 | 783 |
#ifdef GXV_LOAD_TRACE_VARS
|
784 | 784 |
tupleIndex = 0;
|
785 | 785 |
#endif
|
786 |
- GXV_TRACE(( "Subtable length = %d\n", length ));
|
|
786 |
+ GXV_TRACE(( "Subtable length = %lu\n", length ));
|
|
787 | 787 |
|
788 | 788 |
if ( KERN_IS_NEW( gxvalid ) )
|
789 | 789 |
{
|
... | ... | @@ -800,7 +800,7 @@ |
800 | 800 |
default:
|
801 | 801 |
length = u16[1];
|
802 | 802 |
GXV_TRACE(( "cannot detect subtable dialect, "
|
803 |
- "just skip %d byte\n", length ));
|
|
803 |
+ "just skip %lu byte\n", length ));
|
|
804 | 804 |
goto Exit;
|
805 | 805 |
}
|
806 | 806 |
|
... | ... | @@ -884,7 +884,7 @@ |
884 | 884 |
|
885 | 885 |
for ( i = 0; i < nTables; i++ )
|
886 | 886 |
{
|
887 |
- GXV_TRACE(( "validating subtable %d/%d\n", i, nTables ));
|
|
887 |
+ GXV_TRACE(( "validating subtable %d/%lu\n", i, nTables ));
|
|
888 | 888 |
/* p should be 32bit-aligned? */
|
889 | 889 |
gxv_kern_subtable_validate( p, 0, gxvalid );
|
890 | 890 |
p += gxvalid->subtable_length;
|
... | ... | @@ -288,7 +288,7 @@ |
288 | 288 |
|
289 | 289 |
for ( i = 0; i < nChains; i++ )
|
290 | 290 |
{
|
291 |
- GXV_TRACE(( "validating chain %d/%d\n", i + 1, nChains ));
|
|
291 |
+ GXV_TRACE(( "validating chain %lu/%lu\n", i + 1, nChains ));
|
|
292 | 292 |
GXV_32BIT_ALIGNMENT_VALIDATE( p - table );
|
293 | 293 |
gxv_mort_chain_validate( p, limit, gxvalid );
|
294 | 294 |
p += gxvalid->subtable_length;
|
... | ... | @@ -152,7 +152,7 @@ |
152 | 152 |
GXV_32BIT_ALIGNMENT_VALIDATE( ligActionOffset );
|
153 | 153 |
if ( p < lat_base )
|
154 | 154 |
{
|
155 |
- GXV_TRACE(( "too short offset 0x%04x: p < lat_base (%d byte rewind)\n",
|
|
155 |
+ GXV_TRACE(( "too short offset 0x%04x: p < lat_base (%ld byte rewind)\n",
|
|
156 | 156 |
ligActionOffset, lat_base - p ));
|
157 | 157 |
|
158 | 158 |
/* FontValidator, ftxvalidator, ftxdumperfuser warn but continue */
|
... | ... | @@ -160,7 +160,7 @@ |
160 | 160 |
}
|
161 | 161 |
else if ( lat_limit < p )
|
162 | 162 |
{
|
163 |
- GXV_TRACE(( "too large offset 0x%04x: lat_limit < p (%d byte overrun)\n",
|
|
163 |
+ GXV_TRACE(( "too large offset 0x%04x: lat_limit < p (%ld byte overrun)\n",
|
|
164 | 164 |
ligActionOffset, p - lat_limit ));
|
165 | 165 |
|
166 | 166 |
/* FontValidator, ftxvalidator, ftxdumperfuser warn but continue */
|
... | ... | @@ -187,17 +187,17 @@ |
187 | 187 |
offset = lig_action & 0x3FFFFFFFUL;
|
188 | 188 |
if ( offset * 2 < optdata->ligatureTable )
|
189 | 189 |
{
|
190 |
- GXV_TRACE(( "too short offset 0x%08x:"
|
|
191 |
- " 2 x offset < ligatureTable (%d byte rewind)\n",
|
|
190 |
+ GXV_TRACE(( "too short offset 0x%08lx:"
|
|
191 |
+ " 2 x offset < ligatureTable (%lu byte rewind)\n",
|
|
192 | 192 |
offset, optdata->ligatureTable - offset * 2 ));
|
193 | 193 |
|
194 | 194 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_OFFSET );
|
195 | 195 |
} else if ( offset * 2 >
|
196 | 196 |
optdata->ligatureTable + optdata->ligatureTable_length )
|
197 | 197 |
{
|
198 |
- GXV_TRACE(( "too long offset 0x%08x:"
|
|
198 |
+ GXV_TRACE(( "too long offset 0x%08lx:"
|
|
199 | 199 |
" 2 x offset > ligatureTable + ligatureTable_length"
|
200 |
- " (%d byte overrun)\n",
|
|
200 |
+ " (%lu byte overrun)\n",
|
|
201 | 201 |
offset,
|
202 | 202 |
optdata->ligatureTable + optdata->ligatureTable_length
|
203 | 203 |
- offset * 2 ));
|
... | ... | @@ -84,7 +84,7 @@ |
84 | 84 |
p += 4;
|
85 | 85 |
#endif
|
86 | 86 |
|
87 |
- GXV_TRACE(( "validating chain subtable %d/%d (%d bytes)\n",
|
|
87 |
+ GXV_TRACE(( "validating chain subtable %d/%d (%lu bytes)\n",
|
|
88 | 88 |
i + 1, nSubtables, length ));
|
89 | 89 |
|
90 | 90 |
type = coverage & 0x0007;
|
... | ... | @@ -99,7 +99,7 @@ |
99 | 99 |
|
100 | 100 |
func = fmt_funcs_table[type];
|
101 | 101 |
if ( !func )
|
102 |
- GXV_TRACE(( "morx type %d is reserved\n", type ));
|
|
102 |
+ GXV_TRACE(( "morx type %lu is reserved\n", type ));
|
|
103 | 103 |
|
104 | 104 |
func( p, p + rest, gxvalid );
|
105 | 105 |
|
... | ... | @@ -186,7 +186,7 @@ |
186 | 186 |
|
187 | 187 |
for ( i = 0; i < nChains; i++ )
|
188 | 188 |
{
|
189 |
- GXV_TRACE(( "validating chain %d/%d\n", i + 1, nChains ));
|
|
189 |
+ GXV_TRACE(( "validating chain %lu/%lu\n", i + 1, nChains ));
|
|
190 | 190 |
GXV_32BIT_ALIGNMENT_VALIDATE( p - table );
|
191 | 191 |
gxv_morx_chain_validate( p, limit, gxvalid );
|
192 | 192 |
p += gxvalid->subtable_length;
|
... | ... | @@ -72,11 +72,11 @@ |
72 | 72 |
optdata->componentTable = FT_NEXT_ULONG( p );
|
73 | 73 |
optdata->ligatureTable = FT_NEXT_ULONG( p );
|
74 | 74 |
|
75 |
- GXV_TRACE(( "offset to ligActionTable=0x%08x\n",
|
|
75 |
+ GXV_TRACE(( "offset to ligActionTable=0x%08lx\n",
|
|
76 | 76 |
optdata->ligActionTable ));
|
77 |
- GXV_TRACE(( "offset to componentTable=0x%08x\n",
|
|
77 |
+ GXV_TRACE(( "offset to componentTable=0x%08lx\n",
|
|
78 | 78 |
optdata->componentTable ));
|
79 |
- GXV_TRACE(( "offset to ligatureTable=0x%08x\n",
|
|
79 |
+ GXV_TRACE(( "offset to ligatureTable=0x%08lx\n",
|
|
80 | 80 |
optdata->ligatureTable ));
|
81 | 81 |
}
|
82 | 82 |
|
... | ... | @@ -116,19 +116,19 @@ |
116 | 116 |
|
117 | 117 |
gxv_set_length_by_ulong_offset( o, l, buff, 6, table_size, gxvalid );
|
118 | 118 |
|
119 |
- GXV_TRACE(( "classTable: offset=0x%08x length=0x%08x\n",
|
|
119 |
+ GXV_TRACE(( "classTable: offset=0x%08lx length=0x%08lx\n",
|
|
120 | 120 |
classTable, *classTable_length_p ));
|
121 |
- GXV_TRACE(( "stateArray: offset=0x%08x length=0x%08x\n",
|
|
121 |
+ GXV_TRACE(( "stateArray: offset=0x%08lx length=0x%08lx\n",
|
|
122 | 122 |
stateArray, *stateArray_length_p ));
|
123 |
- GXV_TRACE(( "entryTable: offset=0x%08x length=0x%08x\n",
|
|
123 |
+ GXV_TRACE(( "entryTable: offset=0x%08lx length=0x%08lx\n",
|
|
124 | 124 |
entryTable, *entryTable_length_p ));
|
125 |
- GXV_TRACE(( "ligActionTable: offset=0x%08x length=0x%08x\n",
|
|
125 |
+ GXV_TRACE(( "ligActionTable: offset=0x%08lx length=0x%08lx\n",
|
|
126 | 126 |
optdata->ligActionTable,
|
127 | 127 |
optdata->ligActionTable_length ));
|
128 |
- GXV_TRACE(( "componentTable: offset=0x%08x length=0x%08x\n",
|
|
128 |
+ GXV_TRACE(( "componentTable: offset=0x%08lx length=0x%08lx\n",
|
|
129 | 129 |
optdata->componentTable,
|
130 | 130 |
optdata->componentTable_length ));
|
131 |
- GXV_TRACE(( "ligatureTable: offset=0x%08x length=0x%08x\n",
|
|
131 |
+ GXV_TRACE(( "ligatureTable: offset=0x%08lx length=0x%08lx\n",
|
|
132 | 132 |
optdata->ligatureTable,
|
133 | 133 |
optdata->ligatureTable_length ));
|
134 | 134 |
|
... | ... | @@ -157,12 +157,12 @@ |
157 | 157 |
|
158 | 158 |
if ( p < lat_base )
|
159 | 159 |
{
|
160 |
- GXV_TRACE(( "p < lat_base (%d byte rewind)\n", lat_base - p ));
|
|
160 |
+ GXV_TRACE(( "p < lat_base (%ld byte rewind)\n", lat_base - p ));
|
|
161 | 161 |
FT_INVALID_OFFSET;
|
162 | 162 |
}
|
163 | 163 |
else if ( lat_limit < p )
|
164 | 164 |
{
|
165 |
- GXV_TRACE(( "lat_limit < p (%d byte overrun)\n", p - lat_limit ));
|
|
165 |
+ GXV_TRACE(( "lat_limit < p (%ld byte overrun)\n", p - lat_limit ));
|
|
166 | 166 |
FT_INVALID_OFFSET;
|
167 | 167 |
}
|
168 | 168 |
|
... | ... | @@ -196,7 +196,7 @@ |
196 | 196 |
|
197 | 197 |
GXV_TRACE(( "ligature action table includes"
|
198 | 198 |
" too negative offset moving all GID"
|
199 |
- " below defined range: 0x%04x\n",
|
|
199 |
+ " below defined range: 0x%04lx\n",
|
|
200 | 200 |
offset & 0xFFFFU ));
|
201 | 201 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_OFFSET );
|
202 | 202 |
}
|
... | ... | @@ -207,14 +207,14 @@ |
207 | 207 |
|
208 | 208 |
GXV_TRACE(( "ligature action table includes"
|
209 | 209 |
" too large offset moving all GID"
|
210 |
- " over defined range: 0x%04x\n",
|
|
210 |
+ " over defined range: 0x%04lx\n",
|
|
211 | 211 |
offset & 0xFFFFU ));
|
212 | 212 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_OFFSET );
|
213 | 213 |
}
|
214 | 214 |
|
215 | 215 |
GXV_TRACE(( "ligature action table includes"
|
216 | 216 |
" invalid offset to add to 16-bit GID:"
|
217 |
- " 0x%08x\n", offset ));
|
|
217 |
+ " 0x%08lx\n", offset ));
|
|
218 | 218 |
GXV_SET_ERR_IF_PARANOID( FT_INVALID_OFFSET );
|
219 | 219 |
}
|
220 | 220 |
}
|
... | ... | @@ -188,7 +188,7 @@ |
188 | 188 |
|
189 | 189 |
|
190 | 190 |
/* only 0x00010000 is defined (1996) */
|
191 |
- GXV_TRACE(( "(version=0x%08x)\n", version ));
|
|
191 |
+ GXV_TRACE(( "(version=0x%08lx)\n", version ));
|
|
192 | 192 |
if ( 0x00010000UL != version )
|
193 | 193 |
FT_INVALID_FORMAT;
|
194 | 194 |
|
... | ... | @@ -283,7 +283,7 @@ |
283 | 283 |
format = FT_NEXT_USHORT( p );
|
284 | 284 |
defaultProp = FT_NEXT_USHORT( p );
|
285 | 285 |
|
286 |
- GXV_TRACE(( " version 0x%08x\n", version ));
|
|
286 |
+ GXV_TRACE(( " version 0x%08lx\n", version ));
|
|
287 | 287 |
GXV_TRACE(( " format 0x%04x\n", format ));
|
288 | 288 |
GXV_TRACE(( " defaultProp 0x%04x\n", defaultProp ));
|
289 | 289 |
|
... | ... | @@ -309,7 +309,7 @@ |
309 | 309 |
if ( format == 0 )
|
310 | 310 |
{
|
311 | 311 |
FT_TRACE3(( "(format 0, no per-glyph properties, "
|
312 |
- "remaining %d bytes are skipped)", limit - p ));
|
|
312 |
+ "remaining %ld bytes are skipped)", limit - p ));
|
|
313 | 313 |
goto Exit;
|
314 | 314 |
}
|
315 | 315 |
|
... | ... | @@ -130,7 +130,7 @@ |
130 | 130 |
p = table + j * ( 4 + 2 + 2 );
|
131 | 131 |
t = FT_NEXT_LONG( p );
|
132 | 132 |
if ( t == track )
|
133 |
- GXV_TRACE(( "duplicated entries found for track value 0x%x\n",
|
|
133 |
+ GXV_TRACE(( "duplicated entries found for track value 0x%lx\n",
|
|
134 | 134 |
track ));
|
135 | 135 |
}
|
136 | 136 |
}
|
... | ... | @@ -243,7 +243,7 @@ |
243 | 243 |
vertOffset = FT_NEXT_USHORT( p );
|
244 | 244 |
reserved = FT_NEXT_USHORT( p );
|
245 | 245 |
|
246 |
- GXV_TRACE(( " (version = 0x%08x)\n", version ));
|
|
246 |
+ GXV_TRACE(( " (version = 0x%08lx)\n", version ));
|
|
247 | 247 |
GXV_TRACE(( " (format = 0x%04x)\n", format ));
|
248 | 248 |
GXV_TRACE(( " (horizOffset = 0x%04x)\n", horizOffset ));
|
249 | 249 |
GXV_TRACE(( " (vertOffset = 0x%04x)\n", vertOffset ));
|
... | ... | @@ -180,24 +180,24 @@ FT_BEGIN_HEADER |
180 | 180 |
#define OTV_ENTER \
|
181 | 181 |
FT_BEGIN_STMNT \
|
182 | 182 |
otvalid->debug_indent += 2; \
|
183 |
- FT_TRACE4(( "%*.s", otvalid->debug_indent, 0 )); \
|
|
183 |
+ FT_TRACE4(( "%*.s", otvalid->debug_indent, "" )); \
|
|
184 | 184 |
FT_TRACE4(( "%s table\n", \
|
185 | 185 |
otvalid->debug_function_name[otvalid->nesting_level] )); \
|
186 | 186 |
FT_END_STMNT
|
187 | 187 |
|
188 |
-#define OTV_NAME_ENTER( name ) \
|
|
189 |
- FT_BEGIN_STMNT \
|
|
190 |
- otvalid->debug_indent += 2; \
|
|
191 |
- FT_TRACE4(( "%*.s", otvalid->debug_indent, 0 )); \
|
|
192 |
- FT_TRACE4(( "%s table\n", name )); \
|
|
188 |
+#define OTV_NAME_ENTER( name ) \
|
|
189 |
+ FT_BEGIN_STMNT \
|
|
190 |
+ otvalid->debug_indent += 2; \
|
|
191 |
+ FT_TRACE4(( "%*.s", otvalid->debug_indent, "" )); \
|
|
192 |
+ FT_TRACE4(( "%s table\n", name )); \
|
|
193 | 193 |
FT_END_STMNT
|
194 | 194 |
|
195 | 195 |
#define OTV_EXIT otvalid->debug_indent -= 2
|
196 | 196 |
|
197 |
-#define OTV_TRACE( s ) \
|
|
198 |
- FT_BEGIN_STMNT \
|
|
199 |
- FT_TRACE4(( "%*.s", otvalid->debug_indent, 0 )); \
|
|
200 |
- FT_TRACE4( s ); \
|
|
197 |
+#define OTV_TRACE( s ) \
|
|
198 |
+ FT_BEGIN_STMNT \
|
|
199 |
+ FT_TRACE4(( "%*.s", otvalid->debug_indent, "" )); \
|
|
200 |
+ FT_TRACE4( s ); \
|
|
201 | 201 |
FT_END_STMNT
|
202 | 202 |
|
203 | 203 |
#else /* !FT_DEBUG_LEVEL_TRACE */
|
... | ... | @@ -94,7 +94,7 @@ |
94 | 94 |
*/
|
95 | 95 |
if ( face->num_glyphs > 0xFFFFL )
|
96 | 96 |
{
|
97 |
- FT_TRACE1(( "otv_validate: Invalid glyphs index (0x0000FFFF - 0x%08x) ",
|
|
97 |
+ FT_TRACE1(( "otv_validate: Invalid glyphs index (0x0000FFFF - 0x%08lx) ",
|
|
98 | 98 |
face->num_glyphs ));
|
99 | 99 |
FT_TRACE1(( "are not handled by OpenType tables\n" ));
|
100 | 100 |
num_glyphs = 0xFFFF;
|
... | ... | @@ -1054,8 +1054,8 @@ |
1054 | 1054 |
psh_compute_dir( FT_Pos dx,
|
1055 | 1055 |
FT_Pos dy )
|
1056 | 1056 |
{
|
1057 |
- FT_Pos ax, ay;
|
|
1058 |
- int result = PSH_DIR_NONE;
|
|
1057 |
+ FT_Pos ax, ay;
|
|
1058 |
+ PSH_Dir result = PSH_DIR_NONE;
|
|
1059 | 1059 |
|
1060 | 1060 |
|
1061 | 1061 |
ax = FT_ABS( dx );
|
... | ... | @@ -1425,7 +1425,8 @@ |
1425 | 1425 |
if ( psh_point_is_strong( point ) )
|
1426 | 1426 |
continue;
|
1427 | 1427 |
|
1428 |
- point_dir = ( point->dir_in | point->dir_out ) & major_dir;
|
|
1428 |
+ point_dir =
|
|
1429 |
+ (PSH_Dir)( ( point->dir_in | point->dir_out ) & major_dir );
|
|
1429 | 1430 |
|
1430 | 1431 |
if ( point_dir & ( PSH_DIR_DOWN | PSH_DIR_RIGHT ) )
|
1431 | 1432 |
{
|
... | ... | @@ -360,17 +360,27 @@ |
360 | 360 |
FT_FRAME_END
|
361 | 361 |
};
|
362 | 362 |
|
363 |
+#ifndef FT_CONFIG_OPTION_USE_BROTLI
|
|
364 |
+ FT_UNUSED( face_instance_index );
|
|
365 |
+ FT_UNUSED( woff2_num_faces );
|
|
366 |
+#endif
|
|
367 |
+ |
|
363 | 368 |
|
364 | 369 |
face->ttc_header.tag = 0;
|
365 | 370 |
face->ttc_header.version = 0;
|
366 | 371 |
face->ttc_header.count = 0;
|
367 | 372 |
|
373 |
+#if defined( FTCONFIG_OPTION_USE_ZLIB ) || \
|
|
374 |
+ defined( FT_CONFIG_OPTION_USE_BROTLI )
|
|
368 | 375 |
retry:
|
376 |
+#endif
|
|
377 |
+ |
|
369 | 378 |
offset = FT_STREAM_POS();
|
370 | 379 |
|
371 | 380 |
if ( FT_READ_ULONG( tag ) )
|
372 | 381 |
return error;
|
373 | 382 |
|
383 |
+#ifdef FT_CONFIG_OPTION_USE_ZLIB
|
|
374 | 384 |
if ( tag == TTAG_wOFF )
|
375 | 385 |
{
|
376 | 386 |
FT_TRACE2(( "sfnt_open_font: file is a WOFF; synthesizing SFNT\n" ));
|
... | ... | @@ -386,7 +396,9 @@ |
386 | 396 |
stream = face->root.stream;
|
387 | 397 |
goto retry;
|
388 | 398 |
}
|
399 |
+#endif
|
|
389 | 400 |
|
401 |
+#ifdef FT_CONFIG_OPTION_USE_BROTLI
|
|
390 | 402 |
if ( tag == TTAG_wOF2 )
|
391 | 403 |
{
|
392 | 404 |
FT_TRACE2(( "sfnt_open_font: file is a WOFF2; synthesizing SFNT\n" ));
|
... | ... | @@ -405,6 +417,7 @@ |
405 | 417 |
stream = face->root.stream;
|
406 | 418 |
goto retry;
|
407 | 419 |
}
|
420 |
+#endif
|
|
408 | 421 |
|
409 | 422 |
if ( tag != 0x00010000UL &&
|
410 | 423 |
tag != TTAG_ttcf &&
|
... | ... | @@ -23,6 +23,9 @@ |
23 | 23 |
#include <freetype/ftgzip.h>
|
24 | 24 |
|
25 | 25 |
|
26 |
+#ifdef FT_CONFIG_OPTION_USE_ZLIB
|
|
27 |
+ |
|
28 |
+ |
|
26 | 29 |
/**************************************************************************
|
27 | 30 |
*
|
28 | 31 |
* The macro FT_COMPONENT is used in trace mode. It is an implicit
|
... | ... | @@ -360,8 +363,6 @@ |
360 | 363 |
}
|
361 | 364 |
else
|
362 | 365 |
{
|
363 |
-#ifdef FT_CONFIG_OPTION_USE_ZLIB
|
|
364 |
- |
|
365 | 366 |
/* Uncompress with zlib. */
|
366 | 367 |
FT_ULong output_len = table->OrigLength;
|
367 | 368 |
|
... | ... | @@ -377,13 +378,6 @@ |
377 | 378 |
error = FT_THROW( Invalid_Table );
|
378 | 379 |
goto Exit1;
|
379 | 380 |
}
|
380 |
- |
|
381 |
-#else /* !FT_CONFIG_OPTION_USE_ZLIB */
|
|
382 |
- |
|
383 |
- error = FT_THROW( Unimplemented_Feature );
|
|
384 |
- goto Exit1;
|
|
385 |
- |
|
386 |
-#endif /* !FT_CONFIG_OPTION_USE_ZLIB */
|
|
387 | 381 |
}
|
388 | 382 |
|
389 | 383 |
FT_FRAME_EXIT();
|
... | ... | @@ -433,5 +427,12 @@ |
433 | 427 |
#undef WRITE_USHORT
|
434 | 428 |
#undef WRITE_ULONG
|
435 | 429 |
|
430 |
+#else /* !FT_CONFIG_OPTION_USE_ZLIB */
|
|
431 |
+ |
|
432 |
+ /* ANSI C doesn't like empty source files */
|
|
433 |
+ typedef int _sfwoff_dummy;
|
|
434 |
+ |
|
435 |
+#endif /* !FT_CONFIG_OPTION_USE_ZLIB */
|
|
436 |
+ |
|
436 | 437 |
|
437 | 438 |
/* END */
|
... | ... | @@ -26,12 +26,15 @@ |
26 | 26 |
|
27 | 27 |
FT_BEGIN_HEADER
|
28 | 28 |
|
29 |
+#ifdef FT_CONFIG_OPTION_USE_ZLIB
|
|
29 | 30 |
|
30 | 31 |
FT_LOCAL( FT_Error )
|
31 | 32 |
woff_open_font( FT_Stream stream,
|
32 | 33 |
TT_Face face );
|
33 | 34 |
|
34 | 35 |
|
36 |
+#endif
|
|
37 |
+ |
|
35 | 38 |
FT_END_HEADER
|
36 | 39 |
|
37 | 40 |
#endif /* SFWOFF_H_ */
|
... | ... | @@ -26,8 +26,6 @@ |
26 | 26 |
|
27 | 27 |
#include <brotli/decode.h>
|
28 | 28 |
|
29 |
-#endif
|
|
30 |
- |
|
31 | 29 |
|
32 | 30 |
/**************************************************************************
|
33 | 31 |
*
|
... | ... | @@ -316,8 +314,6 @@ |
316 | 314 |
const FT_Byte* src,
|
317 | 315 |
FT_ULong src_size )
|
318 | 316 |
{
|
319 |
-#ifdef FT_CONFIG_OPTION_USE_BROTLI
|
|
320 |
- |
|
321 | 317 |
/* this cast is only of importance on 32bit systems; */
|
322 | 318 |
/* we don't validate it */
|
323 | 319 |
FT_Offset uncompressed_size = (FT_Offset)dst_size;
|
... | ... | @@ -338,18 +334,6 @@ |
338 | 334 |
|
339 | 335 |
FT_TRACE2(( "woff2_decompress: Brotli stream decompressed.\n" ));
|
340 | 336 |
return FT_Err_Ok;
|
341 |
- |
|
342 |
-#else /* !FT_CONFIG_OPTION_USE_BROTLI */
|
|
343 |
- |
|
344 |
- FT_UNUSED( dst );
|
|
345 |
- FT_UNUSED( dst_size );
|
|
346 |
- FT_UNUSED( src );
|
|
347 |
- FT_UNUSED( src_size );
|
|
348 |
- |
|
349 |
- FT_ERROR(( "woff2_decompress: Brotli support not available.\n" ));
|
|
350 |
- return FT_THROW( Unimplemented_Feature );
|
|
351 |
- |
|
352 |
-#endif /* !FT_CONFIG_OPTION_USE_BROTLI */
|
|
353 | 337 |
}
|
354 | 338 |
|
355 | 339 |
|
... | ... | @@ -2356,5 +2340,12 @@ |
2356 | 2340 |
#undef BBOX_STREAM
|
2357 | 2341 |
#undef INSTRUCTION_STREAM
|
2358 | 2342 |
|
2343 |
+#else /* !FT_CONFIG_OPTION_USE_BROTLI */
|
|
2344 |
+ |
|
2345 |
+ /* ANSI C doesn't like empty source files */
|
|
2346 |
+ typedef int _sfwoff2_dummy;
|
|
2347 |
+ |
|
2348 |
+#endif /* !FT_CONFIG_OPTION_USE_BROTLI */
|
|
2349 |
+ |
|
2359 | 2350 |
|
2360 | 2351 |
/* END */
|
... | ... | @@ -26,6 +26,7 @@ |
26 | 26 |
|
27 | 27 |
FT_BEGIN_HEADER
|
28 | 28 |
|
29 |
+#ifdef FT_CONFIG_OPTION_USE_BROTLI
|
|
29 | 30 |
|
30 | 31 |
/* Leave the first byte open to store `flag_byte'. */
|
31 | 32 |
#define WOFF2_FLAGS_TRANSFORM 1 << 8
|
... | ... | @@ -66,6 +67,7 @@ FT_BEGIN_HEADER |
66 | 67 |
FT_Int* face_index,
|
67 | 68 |
FT_Long* num_faces );
|
68 | 69 |
|
70 |
+#endif /* FT_CONFIG_OPTION_USE_BROTLI */
|
|
69 | 71 |
|
70 | 72 |
FT_END_HEADER
|
71 | 73 |
|
... | ... | @@ -17,6 +17,9 @@ |
17 | 17 |
|
18 | 18 |
|
19 | 19 |
#include <freetype/tttags.h>
|
20 |
+ |
|
21 |
+#ifdef FT_CONFIG_OPTION_USE_BROTLI
|
|
22 |
+ |
|
20 | 23 |
#include "woff2tags.h"
|
21 | 24 |
|
22 | 25 |
/*
|
... | ... | @@ -105,5 +108,12 @@ |
105 | 108 |
return known_tags[index];
|
106 | 109 |
}
|
107 | 110 |
|
111 |
+#else /* !FT_CONFIG_OPTION_USE_BROTLI */
|
|
112 |
+ |
|
113 |
+ /* ANSI C doesn't like empty source files */
|
|
114 |
+ typedef int _woff2tags_dummy;
|
|
115 |
+ |
|
116 |
+#endif /* !FT_CONFIG_OPTION_USE_BROTLI */
|
|
117 |
+ |
|
108 | 118 |
|
109 | 119 |
/* END */
|
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 |
*
|
3 | 3 |
* woff2tags.h
|
4 | 4 |
*
|
5 |
- * WOFFF2 Font table tags (specification).
|
|
5 |
+ * WOFF2 Font table tags (specification).
|
|
6 | 6 |
*
|
7 | 7 |
* Copyright (C) 2019-2021 by
|
8 | 8 |
* Nikhil Ramakrishnan, David Turner, Robert Wilhelm, and Werner Lemberg.
|
... | ... | @@ -26,10 +26,12 @@ |
26 | 26 |
|
27 | 27 |
FT_BEGIN_HEADER
|
28 | 28 |
|
29 |
+#ifdef FT_CONFIG_OPTION_USE_BROTLI
|
|
29 | 30 |
|
30 | 31 |
FT_LOCAL( FT_Tag )
|
31 | 32 |
woff2_known_tags( FT_Byte index );
|
32 | 33 |
|
34 |
+#endif
|
|
33 | 35 |
|
34 | 36 |
FT_END_HEADER
|
35 | 37 |
|
... | ... | @@ -140,7 +140,6 @@ |
140 | 140 |
|
141 | 141 |
return error;
|
142 | 142 |
}
|
143 |
-#endif /* TT_USE_BYTECODE_INTERPRETER */
|
|
144 | 143 |
|
145 | 144 |
|
146 | 145 |
/* The fonts embedded in PDF changes their family names
|
... | ... | @@ -167,6 +166,7 @@ |
167 | 166 |
return name + 7;
|
168 | 167 |
}
|
169 | 168 |
|
169 |
+ |
|
170 | 170 |
/* Compare the face with a list of well-known `tricky' fonts. */
|
171 | 171 |
/* This list shall be expanded as we find more of them. */
|
172 | 172 |
|
... | ... | @@ -571,6 +571,8 @@ |
571 | 571 |
return FALSE;
|
572 | 572 |
}
|
573 | 573 |
|
574 |
+#endif /* TT_USE_BYTECODE_INTERPRETER */
|
|
575 |
+ |
|
574 | 576 |
|
575 | 577 |
/* Check whether `.notdef' is the only glyph in the `loca' table. */
|
576 | 578 |
static FT_Bool
|
... | ... | @@ -716,8 +718,10 @@ |
716 | 718 |
if ( error )
|
717 | 719 |
goto Exit;
|
718 | 720 |
|
721 |
+#ifdef TT_USE_BYTECODE_INTERPRETER
|
|
719 | 722 |
if ( tt_check_trickyness( ttface ) )
|
720 | 723 |
ttface->face_flags |= FT_FACE_FLAG_TRICKY;
|
724 |
+#endif
|
|
721 | 725 |
|
722 | 726 |
error = tt_face_load_hdmx( face, stream );
|
723 | 727 |
if ( error )
|