From 87bbb64061f62c8815f0a0cbace4b975793d0aab Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Tue, 13 Sep 2022 10:44:26 +0100 Subject: [PATCH] [instancer] downgrade GSUB/GPOS version if there are no FeatureVariations after instancing same as https://github.com/fonttools/fonttools/pull/2811 but moved the logic to _instantiateFeatureVariations directly, instead of after it --- Lib/fontTools/varLib/instancer/__init__.py | 2 ++ Tests/varLib/instancer/instancer_test.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/fontTools/varLib/instancer/__init__.py b/Lib/fontTools/varLib/instancer/__init__.py index 8f9761236..5913ebf46 100644 --- a/Lib/fontTools/varLib/instancer/__init__.py +++ b/Lib/fontTools/varLib/instancer/__init__.py @@ -864,6 +864,8 @@ def _instantiateFeatureVariations(table, fvarAxes, axisLimits): table.FeatureVariations.FeatureVariationCount = len(newRecords) else: del table.FeatureVariations + # downgrade table version if there are no FeatureVariations left + table.Version = 0x00010000 def _isValidAvarSegmentMap(axisTag, segmentMap): diff --git a/Tests/varLib/instancer/instancer_test.py b/Tests/varLib/instancer/instancer_test.py index db224ccac..4c94fe6ca 100644 --- a/Tests/varLib/instancer/instancer_test.py +++ b/Tests/varLib/instancer/instancer_test.py @@ -1638,11 +1638,14 @@ class InstantiateFeatureVariationsTest(object): ), ] ) + gsub = font["GSUB"].table + assert gsub.FeatureVariations + assert gsub.Version == 0x00010001 instancer.instantiateFeatureVariations(font, location) - gsub = font["GSUB"].table assert not hasattr(gsub, "FeatureVariations") + assert gsub.Version == 0x00010000 if appliedSubs: lookupIndices = gsub.FeatureList.FeatureRecord[0].Feature.LookupListIndex