@@ -33,7 +33,9 @@ private static StreamFontMetrics LoadCompactFont(FontReader reader)
3333 NameTable name = reader . GetTable < NameTable > ( ) ;
3434 CMapTable cmap = reader . GetTable < CMapTable > ( ) ;
3535 PostTable post = reader . GetTable < PostTable > ( ) ;
36- ICffTable ? cff = reader . TryGetTable < Cff1Table > ( ) ?? ( ICffTable ? ) reader . TryGetTable < Cff2Table > ( ) ;
36+ ICffTable ? cff =
37+ ( reader . TryGetTable < Cff1Table > ( ) ?? ( ICffTable ? ) reader . TryGetTable < Cff2Table > ( ) )
38+ ?? throw new InvalidFontFileException ( "Missing required CFF table." ) ;
3739
3840 // TODO: VORG
3941 HorizontalMetricsTable htmx = reader . GetTable < HorizontalMetricsTable > ( ) ;
@@ -63,18 +65,17 @@ private static StreamFontMetrics LoadCompactFont(FontReader reader)
6365 MVarTable ? mVar = reader . TryGetTable < MVarTable > ( ) ;
6466
6567 GlyphVariationProcessor ? glyphVariationProcessor = null ;
66- if ( cff ? . ItemVariationStore != null )
68+ if ( cff . ItemVariationStore != null )
6769 {
6870 if ( fVar is null )
6971 {
7072 throw new InvalidFontFileException ( "missing fvar table required for glyph variations processing" ) ;
7173 }
7274
73- // TODO: The docs say that hvar and vvar can be used for CFF fonts so how do we determine when to use them?
7475 glyphVariationProcessor = new GlyphVariationProcessor ( cff . ItemVariationStore , fVar , aVar , gVar , hVar , vVar , mVar ) ;
7576 }
7677
77- CompactFontTables tables = new ( cmap , head , hhea , htmx , maxp , name , os2 , post , cff ! )
78+ CompactFontTables tables = new ( cmap , head , hhea , htmx , maxp , name , os2 , post , cff )
7879 {
7980 Kern = kern ,
8081 Vhea = vhea ,
0 commit comments