From 7e5644a0a8bb6367553bc74f2b9496b803569367 Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Sat, 18 May 2019 04:18:32 +0200 Subject: [PATCH] [varLib] Fix merging GDEF.GlyphClassDef in mutator The code was setting GlyphClassDef.classDefs for the base font to an empty dict then reading it from all fonts. It accidentally works when creating variable fonts because the GlyphClassDef of the other fonts will be used, but when mutating there is only one font. Fix by reading the glyph classes before assigning to an empty dict. --- Lib/fontTools/varLib/merger.py | 2 +- .../TestFamily-Master0.ttx | 10 ++++++++++ .../TestFamily-Master1.ttx | 10 ++++++++++ .../TestFamily-Master2.ttx | 10 ++++++++++ .../TestFamily-Master3.ttx | 10 ++++++++++ .../TestFamily-Master4.ttx | 10 ++++++++++ Tests/varLib/data/test_results/Build.ttx | 10 ++++++++++ Tests/varLib/data/test_results/BuildMain.ttx | 10 ++++++++++ .../varLib/data/test_results/InterpolateLayoutMain.ttx | 10 ++++++++++ Tests/varLib/data/test_results/Mutator.ttx | 10 ++++++++++ 10 files changed, 91 insertions(+), 1 deletion(-) diff --git a/Lib/fontTools/varLib/merger.py b/Lib/fontTools/varLib/merger.py index 688790c5e..b4b170594 100644 --- a/Lib/fontTools/varLib/merger.py +++ b/Lib/fontTools/varLib/merger.py @@ -119,10 +119,10 @@ def merge(merger, self, lst): assert allNone(lst), (lst) return + lst = [l.classDefs for l in lst] self.classDefs = {} # We only care about the .classDefs self = self.classDefs - lst = [l.classDefs for l in lst] allKeys = set() allKeys.update(*[l.keys() for l in lst]) diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx index f14f89d36..6054e4bdb 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx @@ -517,4 +517,14 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx index 8d5bace5b..afd61de97 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx @@ -517,4 +517,14 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx index 3e20faca6..0ed2f4acd 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx @@ -501,4 +501,14 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx index e1d0375df..5666541e8 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx @@ -501,4 +501,14 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx index c0946fd19..87381873e 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx @@ -501,4 +501,14 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/test_results/Build.ttx b/Tests/varLib/data/test_results/Build.ttx index 1bc1880b4..6e9c6e37f 100644 --- a/Tests/varLib/data/test_results/Build.ttx +++ b/Tests/varLib/data/test_results/Build.ttx @@ -1,6 +1,16 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/test_results/BuildMain.ttx b/Tests/varLib/data/test_results/BuildMain.ttx index 6875c7128..7150a5793 100644 --- a/Tests/varLib/data/test_results/BuildMain.ttx +++ b/Tests/varLib/data/test_results/BuildMain.ttx @@ -613,6 +613,16 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx b/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx index 0c0af325b..6a0635d07 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx @@ -496,4 +496,14 @@ + + + + + + + + + + diff --git a/Tests/varLib/data/test_results/Mutator.ttx b/Tests/varLib/data/test_results/Mutator.ttx index fac0997a6..75a0879ec 100644 --- a/Tests/varLib/data/test_results/Mutator.ttx +++ b/Tests/varLib/data/test_results/Mutator.ttx @@ -496,4 +496,14 @@ + + + + + + + + + +