From 416ff8917107d2b5f791bc9e3104c4d80f8525bc Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Thu, 8 Apr 2021 11:38:21 -0600 Subject: [PATCH] [TupleVariation] Minor optimize in using sharedCoordinates --- Lib/fontTools/ttLib/tables/TupleVariation.py | 11 +++++------ Lib/fontTools/varLib/__init__.py | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/TupleVariation.py b/Lib/fontTools/ttLib/tables/TupleVariation.py index b20103a44..ae87898cd 100644 --- a/Lib/fontTools/ttLib/tables/TupleVariation.py +++ b/Lib/fontTools/ttLib/tables/TupleVariation.py @@ -126,15 +126,14 @@ class TupleVariation(object): log.warning("bad delta format: %s" % ", ".join(sorted(attrs.keys()))) - def compile(self, axisTags, sharedCoordIndices, sharedPoints): + def compile(self, axisTags, sharedCoordIndices={}, sharedPoints=None): tupleData = [] assert all(tag in axisTags for tag in self.axes.keys()), ("Unknown axis tag found.", self.axes.keys(), axisTags) coord = self.compileCoord(axisTags) - if coord in sharedCoordIndices: - flags = sharedCoordIndices[coord] - else: + flags = sharedCoordIndices.get(coord) + if flags is None: flags = EMBEDDED_PEAK_TUPLE tupleData.append(coord) @@ -541,9 +540,9 @@ class TupleVariation(object): # Shouldn't matter that this is different from fvar...? axisTags = sorted(self.axes.keys()) - tupleData, auxData, _ = self.compile(axisTags, [], None) + tupleData, auxData, _ = self.compile(axisTags) unoptimizedLength = len(tupleData) + len(auxData) - tupleData, auxData, _ = varOpt.compile(axisTags, [], None) + tupleData, auxData, _ = varOpt.compile(axisTags) optimizedLength = len(tupleData) + len(auxData) if optimizedLength < unoptimizedLength: diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py index 36ff0d97b..cb1ba0b65 100644 --- a/Lib/fontTools/varLib/__init__.py +++ b/Lib/fontTools/varLib/__init__.py @@ -284,9 +284,9 @@ def _add_gvar(font, masterModel, master_ttfs, tolerance=0.5, optimize=True): var_opt = TupleVariation(support, delta_opt) axis_tags = sorted(support.keys()) # Shouldn't matter that this is different from fvar...? - tupleData, auxData, _ = var.compile(axis_tags, [], None) + tupleData, auxData, _ = var.compile(axis_tags) unoptimized_len = len(tupleData) + len(auxData) - tupleData, auxData, _ = var_opt.compile(axis_tags, [], None) + tupleData, auxData, _ = var_opt.compile(axis_tags) optimized_len = len(tupleData) + len(auxData) if optimized_len < unoptimized_len: