[varStore] Micro-optimize storeDeltas()
Also speed up the test slightly by skipping rounding.
This commit is contained in:
parent
c7ce5b0f3c
commit
9e36b9465d
@ -95,6 +95,7 @@ class OnlineVarStoreBuilder(object):
|
||||
return base, self.storeDeltas(deltas, round=noRound)
|
||||
|
||||
def storeDeltas(self, deltas, *, round=round):
|
||||
if round != noRound:
|
||||
deltas = [round(d) for d in deltas]
|
||||
if len(deltas) == len(self._supports) + 1:
|
||||
deltas = tuple(deltas[1:])
|
||||
@ -121,6 +122,7 @@ class OnlineVarStoreBuilder(object):
|
||||
|
||||
|
||||
def VarData_addItem(self, deltas, *, round=round):
|
||||
if round != noRound:
|
||||
deltas = [round(d) for d in deltas]
|
||||
|
||||
countUs = self.VarRegionCount
|
||||
|
@ -1,6 +1,7 @@
|
||||
import pytest
|
||||
from io import StringIO
|
||||
from fontTools.misc.xmlWriter import XMLWriter
|
||||
from fontTools.misc.roundTools import noRound
|
||||
from fontTools.varLib.models import VariationModel
|
||||
from fontTools.varLib.varStore import OnlineVarStoreBuilder, VarStoreInstancer
|
||||
from fontTools.ttLib import TTFont, newTable
|
||||
@ -269,7 +270,7 @@ def test_optimize_overflow():
|
||||
|
||||
for data in range(0, 0xFFFF * 2):
|
||||
data = [0, data]
|
||||
builder.storeMasters(data)
|
||||
builder.storeMasters(data, round=noRound)
|
||||
|
||||
varStore = builder.finish()
|
||||
varStore.optimize()
|
||||
|
Loading…
x
Reference in New Issue
Block a user