[varLib.interpolatable] Micro-optimize by reusing a list

This commit is contained in:
Behdad Esfahbod 2023-10-16 14:37:16 -06:00
parent 807864872e
commit b3a45f9f79

View File

@ -241,22 +241,24 @@ def test(glyphsets, glyphs=None, names=None, ignore_missing=False):
mask = (1 << n) - 1
isomorphisms = []
contourIsomorphisms.append(isomorphisms)
complexPoints = [complex(*pt) for pt, bl in points.value]
for i in range(n):
b = ((bits << i) & mask) | ((bits >> (n - i)))
if b == bits:
isomorphisms.append(
_rot_list([complex(*pt) for pt, bl in points.value], i)
_rot_list(complexPoints, i)
)
# Add mirrored rotations
mirrored = list(reversed(points.value))
reversed_bits = 0
for pt, b in mirrored:
reversed_bits = (reversed_bits << 1) | b
complexPoints = list(reversed(complexPoints))
for i in range(n):
b = ((reversed_bits << i) & mask) | ((reversed_bits >> (n - i)))
if b == bits:
isomorphisms.append(
_rot_list([complex(*pt) for pt, bl in mirrored], i)
_rot_list(complexPoints, i)
)
# m0idx should be the index of the first non-None item in allNodeTypes,