From b1ca16738c5eb4e7d06b76f661fcdf279224bae2 Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Tue, 23 Mar 2021 12:43:10 +0000 Subject: [PATCH] [otlLib] Ensure built PairPos1 ValueRecords are padded with 0s Like when decompiled. See https://github.com/fonttools/fonttools/commit/2089d051265d96db9dfdbcf15af10e1e003ccd82#r48578120 Part of https://github.com/fonttools/fonttools/pull/2237 --- Lib/fontTools/otlLib/builder.py | 4 ++-- Tests/otlLib/builder_test.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Lib/fontTools/otlLib/builder.py b/Lib/fontTools/otlLib/builder.py index 5a1379f5e..f95fdfd5c 100644 --- a/Lib/fontTools/otlLib/builder.py +++ b/Lib/fontTools/otlLib/builder.py @@ -2190,8 +2190,8 @@ def buildPairPosGlyphsSubtable(pairs, glyphMap, valueFormat1=None, valueFormat2= for glyph2, val1, val2 in sorted(p[glyph], key=lambda x: glyphMap[x[0]]): pvr = ot.PairValueRecord() pvr.SecondGlyph = glyph2 - pvr.Value1 = val1 if valueFormat1 else None - pvr.Value2 = val2 if valueFormat2 else None + pvr.Value1 = ValueRecord(src=val1, valueFormat=valueFormat1) if valueFormat1 else None + pvr.Value2 = ValueRecord(src=val2, valueFormat=valueFormat2) if valueFormat2 else None ps.PairValueRecord.append(pvr) ps.PairValueCount = len(ps.PairValueRecord) self.PairSetCount = len(self.PairSet) diff --git a/Tests/otlLib/builder_test.py b/Tests/otlLib/builder_test.py index 797f15953..2d2b88d80 100644 --- a/Tests/otlLib/builder_test.py +++ b/Tests/otlLib/builder_test.py @@ -922,6 +922,7 @@ class BuilderTest(object): }, self.GLYPHMAP, ) + assert getXML(subtable.toXML) == [ '', " ", @@ -935,11 +936,12 @@ class BuilderTest(object): " ", ' ', ' ', - ' ', + ' ', ' ', " ", ' ', ' ', + ' ', ' ', " ", " ",