[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)
|
return base, self.storeDeltas(deltas, round=noRound)
|
||||||
|
|
||||||
def storeDeltas(self, deltas, *, round=round):
|
def storeDeltas(self, deltas, *, round=round):
|
||||||
|
if round != noRound:
|
||||||
deltas = [round(d) for d in deltas]
|
deltas = [round(d) for d in deltas]
|
||||||
if len(deltas) == len(self._supports) + 1:
|
if len(deltas) == len(self._supports) + 1:
|
||||||
deltas = tuple(deltas[1:])
|
deltas = tuple(deltas[1:])
|
||||||
@ -121,6 +122,7 @@ class OnlineVarStoreBuilder(object):
|
|||||||
|
|
||||||
|
|
||||||
def VarData_addItem(self, deltas, *, round=round):
|
def VarData_addItem(self, deltas, *, round=round):
|
||||||
|
if round != noRound:
|
||||||
deltas = [round(d) for d in deltas]
|
deltas = [round(d) for d in deltas]
|
||||||
|
|
||||||
countUs = self.VarRegionCount
|
countUs = self.VarRegionCount
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import pytest
|
import pytest
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
from fontTools.misc.xmlWriter import XMLWriter
|
from fontTools.misc.xmlWriter import XMLWriter
|
||||||
|
from fontTools.misc.roundTools import noRound
|
||||||
from fontTools.varLib.models import VariationModel
|
from fontTools.varLib.models import VariationModel
|
||||||
from fontTools.varLib.varStore import OnlineVarStoreBuilder, VarStoreInstancer
|
from fontTools.varLib.varStore import OnlineVarStoreBuilder, VarStoreInstancer
|
||||||
from fontTools.ttLib import TTFont, newTable
|
from fontTools.ttLib import TTFont, newTable
|
||||||
@ -269,7 +270,7 @@ def test_optimize_overflow():
|
|||||||
|
|
||||||
for data in range(0, 0xFFFF * 2):
|
for data in range(0, 0xFFFF * 2):
|
||||||
data = [0, data]
|
data = [0, data]
|
||||||
builder.storeMasters(data)
|
builder.storeMasters(data, round=noRound)
|
||||||
|
|
||||||
varStore = builder.finish()
|
varStore = builder.finish()
|
||||||
varStore.optimize()
|
varStore.optimize()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user