[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 mask = (1 << n) - 1
isomorphisms = [] isomorphisms = []
contourIsomorphisms.append(isomorphisms) contourIsomorphisms.append(isomorphisms)
complexPoints = [complex(*pt) for pt, bl in points.value]
for i in range(n): for i in range(n):
b = ((bits << i) & mask) | ((bits >> (n - i))) b = ((bits << i) & mask) | ((bits >> (n - i)))
if b == bits: if b == bits:
isomorphisms.append( isomorphisms.append(
_rot_list([complex(*pt) for pt, bl in points.value], i) _rot_list(complexPoints, i)
) )
# Add mirrored rotations # Add mirrored rotations
mirrored = list(reversed(points.value)) mirrored = list(reversed(points.value))
reversed_bits = 0 reversed_bits = 0
for pt, b in mirrored: for pt, b in mirrored:
reversed_bits = (reversed_bits << 1) | b reversed_bits = (reversed_bits << 1) | b
complexPoints = list(reversed(complexPoints))
for i in range(n): for i in range(n):
b = ((reversed_bits << i) & mask) | ((reversed_bits >> (n - i))) b = ((reversed_bits << i) & mask) | ((reversed_bits >> (n - i)))
if b == bits: if b == bits:
isomorphisms.append( 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, # m0idx should be the index of the first non-None item in allNodeTypes,