Fix issue when there are no variants.

This commit is contained in:
Michael Griebling
2023-02-22 10:37:59 -05:00
parent 5940731d1a
commit 53b0bf1d5a

View File

@@ -203,15 +203,15 @@ class MTFontMathTable {
func getVariantsForGlyph(_ glyph: CGGlyph, inDictionary variants:NSDictionary?) -> [NSNumber] { func getVariantsForGlyph(_ glyph: CGGlyph, inDictionary variants:NSDictionary?) -> [NSNumber] {
let glyphName = self.font!.get(nameForGlyph: glyph) let glyphName = self.font!.get(nameForGlyph: glyph)
let variantGlyphs = variants![glyphName] as! NSArray? let variantGlyphs = variants![glyphName] as! NSArray
var glyphArray = [NSNumber]() var glyphArray = [NSNumber]()
if variantGlyphs == nil { if variantGlyphs.count == 0 {
// There are no extra variants, so just add the current glyph to it. // There are no extra variants, so just add the current glyph to it.
let glyph = self.font!.get(glyphWithName: glyphName) let glyph = self.font!.get(glyphWithName: glyphName)
glyphArray.append(NSNumber(value:glyph)) glyphArray.append(NSNumber(value:glyph))
return glyphArray return glyphArray
} }
for gvn in variantGlyphs! { for gvn in variantGlyphs {
let glyphVariantName = gvn as! String? let glyphVariantName = gvn as! String?
let variantGlyph = self.font?.get(glyphWithName: glyphVariantName!) let variantGlyph = self.font?.get(glyphWithName: glyphVariantName!)
glyphArray.append(NSNumber(value:variantGlyph!)) glyphArray.append(NSNumber(value:variantGlyph!))
@@ -225,13 +225,13 @@ class MTFontMathTable {
func getLargerGlyph(_ glyph:CGGlyph) -> CGGlyph { func getLargerGlyph(_ glyph:CGGlyph) -> CGGlyph {
let variants = _mathTable[kVertVariants] as! NSDictionary? let variants = _mathTable[kVertVariants] as! NSDictionary?
let glyphName = self.font?.get(nameForGlyph: glyph) let glyphName = self.font?.get(nameForGlyph: glyph)
let variantGlyphs = variants![glyphName!] as! NSArray? let variantGlyphs = variants![glyphName!] as! NSArray
if variantGlyphs == nil { if variantGlyphs.count == 0 {
// There are no extra variants, so just returnt the current glyph. // There are no extra variants, so just returnt the current glyph.
return glyph return glyph
} }
// Find the first variant with a different name. // Find the first variant with a different name.
for gvn in variantGlyphs! { for gvn in variantGlyphs {
let glyphVariantName = gvn as! String? let glyphVariantName = gvn as! String?
if glyphVariantName != glyphName { if glyphVariantName != glyphName {
let variantGlyph = self.font?.get(glyphWithName: glyphVariantName!) let variantGlyph = self.font?.get(glyphWithName: glyphVariantName!)