From a51b3c9d6815adc1f40cbde46276c848c5590e35 Mon Sep 17 00:00:00 2001 From: Qunxin Liu Date: Thu, 31 Aug 2023 11:13:06 -0700 Subject: [PATCH] fix the order of prune_unused_regions, should be after vardata optimization --- Lib/fontTools/varLib/varStore.py | 6 +- Tests/varLib/data/test_results/Build.ttx | 99 ++++--------------- Tests/varLib/data/test_results/BuildMain.ttx | 99 ++++--------------- .../data/test_results/SparseCFF2-VF.ttx | 18 +--- .../data/test_results/SparseMasters.ttx | 25 +---- Tests/varLib/data/test_results/TestVVAR.ttx | 11 +-- Tests/varLib/varStore_test.py | 6 +- 7 files changed, 46 insertions(+), 218 deletions(-) diff --git a/Lib/fontTools/varLib/varStore.py b/Lib/fontTools/varLib/varStore.py index 55d70e278..74828e407 100644 --- a/Lib/fontTools/varLib/varStore.py +++ b/Lib/fontTools/varLib/varStore.py @@ -633,9 +633,6 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1): for k, v in front_mapping.items(): varidx_map[k] = back_mapping[v] if v is not None else NO_VARIATION_INDEX - # Remove unused regions. - self.prune_regions() - # Recalculate things and go home. self.VarRegionList.RegionCount = len(self.VarRegionList.Region) self.VarDataCount = len(self.VarData) @@ -643,6 +640,9 @@ def VarStore_optimize(self, use_NO_VARIATION_INDEX=True, quantization=1): data.ItemCount = len(data.Item) data.optimize() + # Remove unused regions. + self.prune_regions() + return varidx_map diff --git a/Tests/varLib/data/test_results/Build.ttx b/Tests/varLib/data/test_results/Build.ttx index c802bf324..144cca5e7 100644 --- a/Tests/varLib/data/test_results/Build.ttx +++ b/Tests/varLib/data/test_results/Build.ttx @@ -1,5 +1,5 @@ - + @@ -17,7 +17,7 @@ - + @@ -42,58 +42,29 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + @@ -105,7 +76,7 @@ - + @@ -130,42 +101,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/varLib/data/test_results/BuildMain.ttx b/Tests/varLib/data/test_results/BuildMain.ttx index 27d02d1de..3a1bcfd37 100644 --- a/Tests/varLib/data/test_results/BuildMain.ttx +++ b/Tests/varLib/data/test_results/BuildMain.ttx @@ -1,5 +1,5 @@ - + @@ -629,7 +629,7 @@ - + @@ -654,58 +654,29 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + @@ -717,7 +688,7 @@ - + @@ -742,42 +713,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/varLib/data/test_results/SparseCFF2-VF.ttx b/Tests/varLib/data/test_results/SparseCFF2-VF.ttx index 574506cc2..4a1861c98 100644 --- a/Tests/varLib/data/test_results/SparseCFF2-VF.ttx +++ b/Tests/varLib/data/test_results/SparseCFF2-VF.ttx @@ -1,5 +1,5 @@ - + @@ -128,7 +128,7 @@ - + @@ -136,20 +136,6 @@ - - - - - - - - - - - - - - diff --git a/Tests/varLib/data/test_results/SparseMasters.ttx b/Tests/varLib/data/test_results/SparseMasters.ttx index a3f8e619d..2871e24fb 100644 --- a/Tests/varLib/data/test_results/SparseMasters.ttx +++ b/Tests/varLib/data/test_results/SparseMasters.ttx @@ -1,5 +1,5 @@ - + @@ -440,28 +440,7 @@ - - - - - - - - - - - - - - - - - - - - - - + diff --git a/Tests/varLib/data/test_results/TestVVAR.ttx b/Tests/varLib/data/test_results/TestVVAR.ttx index 53c038c19..c16266d37 100644 --- a/Tests/varLib/data/test_results/TestVVAR.ttx +++ b/Tests/varLib/data/test_results/TestVVAR.ttx @@ -1,5 +1,5 @@ - + @@ -7,14 +7,7 @@ - - - - - - - - + diff --git a/Tests/varLib/varStore_test.py b/Tests/varLib/varStore_test.py index 70d1340f2..75b6387d1 100644 --- a/Tests/varLib/varStore_test.py +++ b/Tests/varLib/varStore_test.py @@ -94,7 +94,7 @@ def buildAxis(axisTag): {3: 300}, ], 1, - 156, + 126, ), ( 5, @@ -212,8 +212,8 @@ def test_optimize(numRegions, varData, expectedNumVarData, expectedBytes): (3, 170), (4, 175), (8, 170), - (32, 152), - (64, 146), + (32, 92), + (64, 56), ], ) def test_quantize(quantization, expectedBytes):