diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py index 2f5514e41..377c24a29 100644 --- a/Lib/fontTools/varLib/__init__.py +++ b/Lib/fontTools/varLib/__init__.py @@ -411,9 +411,7 @@ def _merge_TTHinting(font, masterModel, master_ttfs, tolerance=0.5): cvar.version = 1 cvar.variations = [] - model, all_cvs = masterModel.getSubModel(all_cvs) - deltas = model.getDeltas(all_cvs) - supports = model.supports + deltas, supports = masterModel.getDeltasAndSupports(all_cvs) for i,(delta,support) in enumerate(zip(deltas[1:], supports[1:])): delta = [otRound(d) for d in delta] if all(abs(v) <= tolerance for v in delta): diff --git a/Lib/fontTools/varLib/models.py b/Lib/fontTools/varLib/models.py index 1bf0367bf..c4166e9f8 100644 --- a/Lib/fontTools/varLib/models.py +++ b/Lib/fontTools/varLib/models.py @@ -338,6 +338,10 @@ class VariationModel(object): out.append(delta) return out + def getDeltasAndSupports(self, items): + model, items = getSubModel(items) + return model.getDeltas(items), model.supports + def getScalars(self, loc): return [supportScalar(loc, support) for support in self.supports]