From d5d771b2bf0dd166ff97910db21f7d4cf5c66f9e Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 7 Apr 2021 16:53:35 -0600 Subject: [PATCH] [TupleVariation] Use array.array to serialize multiple deltas --- Lib/fontTools/ttLib/tables/TupleVariation.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/TupleVariation.py b/Lib/fontTools/ttLib/tables/TupleVariation.py index 5f185be86..0019e2192 100644 --- a/Lib/fontTools/ttLib/tables/TupleVariation.py +++ b/Lib/fontTools/ttLib/tables/TupleVariation.py @@ -380,8 +380,7 @@ class TupleVariation(object): runLength += 1 assert runLength >= 1 and runLength <= 64 bytearr.append(runLength - 1) - for i in range(offset, pos): - bytearr.extend(struct.pack('b', deltas[i])) + bytearr.extend(array.array('b', deltas[offset:pos])) return pos @staticmethod @@ -414,8 +413,9 @@ class TupleVariation(object): runLength += 1 assert runLength >= 1 and runLength <= 64 bytearr.append(DELTAS_ARE_WORDS | (runLength - 1)) - for i in range(offset, pos): - bytearr.extend(struct.pack('>h', deltas[i])) + a = array.array('h', deltas[offset:pos]) + if sys.byteorder != "big": a.byteswap() + bytearr.extend(a) return pos @staticmethod