From 2d579c11920396be6c13f689e028659cb8a00350 Mon Sep 17 00:00:00 2001 From: Peter Tang Date: Tue, 12 Sep 2023 08:57:39 +0800 Subject: [PATCH] modified declaration glyph in GlyphPart within MathTable. --- Sources/SwiftMath/MathBundle/MathTable.swift | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Sources/SwiftMath/MathBundle/MathTable.swift b/Sources/SwiftMath/MathBundle/MathTable.swift index 1c2028f..944200a 100644 --- a/Sources/SwiftMath/MathBundle/MathTable.swift +++ b/Sources/SwiftMath/MathBundle/MathTable.swift @@ -270,18 +270,17 @@ internal struct MathTable { } var rv = [GlyphPart]() for part in parts { - let partInfo = part as? NSDictionary - var part = GlyphPart() - if let adv = partInfo?["advance"] as? NSNumber, - let end = partInfo?["endConnector"] as? NSNumber, - let start = partInfo?["startConnector"] as? NSNumber, - let ext = partInfo?["extender"] as? NSNumber, - let glyphName = partInfo?["glyph"] as? String { + guard let partInfo = part as? NSDictionary, let glyph = font.get(glyphWithName: glyphName) else { continue } + var part = GlyphPart(glyph: glyph) + if let adv = partInfo["advance"] as? NSNumber, + let end = partInfo["endConnector"] as? NSNumber, + let start = partInfo["startConnector"] as? NSNumber, + let ext = partInfo["extender"] as? NSNumber, + let glyphName = partInfo["glyph"] as? String { part.fullAdvance = fontUnitsToPt(adv.intValue) part.endConnectorLength = fontUnitsToPt(end.intValue) part.startConnectorLength = fontUnitsToPt(start.intValue) part.isExtender = ext.boolValue - part.glyph = font.get(glyphWithName: glyphName) rv.append(part) } } @@ -290,10 +289,9 @@ internal struct MathTable { } extension MathTable { - struct GlyphPart { /// The glyph that represents this part - var glyph: CGGlyph! + var glyph: CGGlyph /// Full advance width/height for this part, in the direction of the extension in points. var fullAdvance: CGFloat = 0