From 61bc8458ef0444af4224f5d4644b9402ee1df14c Mon Sep 17 00:00:00 2001 From: Khaled Hosny Date: Sat, 17 Aug 2019 00:56:42 +0200 Subject: [PATCH] [subset] Prune empty strikes in EBDT data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After subsetting some strikes might be empty (strikes don’t have to cover all glyphs equally) which would cause a key error later when saving the table. Fixes https://github.com/fonttools/fonttools/issues/1633 --- Lib/fontTools/subset/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Lib/fontTools/subset/__init__.py b/Lib/fontTools/subset/__init__.py index e3e6f74d9..8bf44985d 100644 --- a/Lib/fontTools/subset/__init__.py +++ b/Lib/fontTools/subset/__init__.py @@ -1388,6 +1388,9 @@ def subset_glyphs(self, s): def subset_glyphs(self, s): self.strikeData = [{g: strike[g] for g in s.glyphs if g in strike} for strike in self.strikeData] + # Prune empty strikes + # https://github.com/fonttools/fonttools/issues/1633 + self.strikeData = list(filter(bool, self.strikeData)) return True @_add_method(ttLib.getTableClass('sbix'))