From 8019069f7cc3ec87205b9541728de33416c7f9d8 Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Fri, 13 Nov 2015 17:38:50 +0000 Subject: [PATCH] [sfnt] make SFNTReader.tables an OrderedDict sorted by table offset Fixes https://github.com/behdad/fonttools/issues/408 --- Lib/fontTools/ttLib/sfnt.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Lib/fontTools/ttLib/sfnt.py b/Lib/fontTools/ttLib/sfnt.py index 5f6c4206a..175a947a5 100644 --- a/Lib/fontTools/ttLib/sfnt.py +++ b/Lib/fontTools/ttLib/sfnt.py @@ -84,12 +84,13 @@ class SFNTReader(object): if self.sfntVersion not in ("\x00\x01\x00\x00", "OTTO", "true"): from fontTools import ttLib raise ttLib.TTLibError("Not a TrueType or OpenType font (bad sfntVersion)") - self.tables = OrderedDict() + tables = {} for i in range(self.numTables): entry = self.DirectoryEntry() entry.fromFile(self.file) tag = Tag(entry.tag) - self.tables[tag] = entry + tables[tag] = entry + self.tables = OrderedDict(sorted(tables.items(), key=lambda i: i[1].offset)) # Load flavor data if any if self.flavor == "woff":