[sfnt] make SFNTReader.tables an OrderedDict sorted by table offset
Fixes https://github.com/behdad/fonttools/issues/408
This commit is contained in:
parent
7f5d5454fc
commit
8019069f7c
@ -84,12 +84,13 @@ class SFNTReader(object):
|
|||||||
if self.sfntVersion not in ("\x00\x01\x00\x00", "OTTO", "true"):
|
if self.sfntVersion not in ("\x00\x01\x00\x00", "OTTO", "true"):
|
||||||
from fontTools import ttLib
|
from fontTools import ttLib
|
||||||
raise ttLib.TTLibError("Not a TrueType or OpenType font (bad sfntVersion)")
|
raise ttLib.TTLibError("Not a TrueType or OpenType font (bad sfntVersion)")
|
||||||
self.tables = OrderedDict()
|
tables = {}
|
||||||
for i in range(self.numTables):
|
for i in range(self.numTables):
|
||||||
entry = self.DirectoryEntry()
|
entry = self.DirectoryEntry()
|
||||||
entry.fromFile(self.file)
|
entry.fromFile(self.file)
|
||||||
tag = Tag(entry.tag)
|
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
|
# Load flavor data if any
|
||||||
if self.flavor == "woff":
|
if self.flavor == "woff":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user