From b5afd862e132f038ca5752d660e92c5b9a81114c Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Fri, 29 Apr 2016 17:53:41 +0200 Subject: [PATCH] [glyf] Round component offset before compiling We can get a float here. --- Lib/fontTools/ttLib/tables/_g_l_y_f.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Lib/fontTools/ttLib/tables/_g_l_y_f.py b/Lib/fontTools/ttLib/tables/_g_l_y_f.py index 9ade5b9b2..a3468131f 100644 --- a/Lib/fontTools/ttLib/tables/_g_l_y_f.py +++ b/Lib/fontTools/ttLib/tables/_g_l_y_f.py @@ -1070,11 +1070,13 @@ class GlyphComponent(object): data = data + struct.pack(">HH", self.firstPt, self.secondPt) flags = flags | ARG_1_AND_2_ARE_WORDS else: + x = int(round(self.x)) + y = int(round(self.y)) flags = flags | ARGS_ARE_XY_VALUES - if (-128 <= self.x <= 127) and (-128 <= self.y <= 127): - data = data + struct.pack(">bb", self.x, self.y) + if (-128 <= x <= 127) and (-128 <= y <= 127): + data = data + struct.pack(">bb", x, y) else: - data = data + struct.pack(">hh", self.x, self.y) + data = data + struct.pack(">hh", x, y) flags = flags | ARG_1_AND_2_ARE_WORDS if hasattr(self, "transform"):