diff --git a/Lib/fontTools/varLib/interpolatable.py b/Lib/fontTools/varLib/interpolatable.py index 39e7416f7..f0b1aa8b0 100644 --- a/Lib/fontTools/varLib/interpolatable.py +++ b/Lib/fontTools/varLib/interpolatable.py @@ -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,