BaseTTXConverter: add ensureDecompiled method
to unlazify a whole tree of otTables, recursively
This commit is contained in:
parent
64dc37fc01
commit
ee27b73d7c
@ -108,6 +108,9 @@ class BaseTTXConverter(DefaultTable):
|
|||||||
self.table.fromXML(name, attrs, content, font)
|
self.table.fromXML(name, attrs, content, font)
|
||||||
self.table.populateDefaults()
|
self.table.populateDefaults()
|
||||||
|
|
||||||
|
def ensureDecompiled(self):
|
||||||
|
self.table.ensureDecompiled(recurse=True)
|
||||||
|
|
||||||
|
|
||||||
# https://github.com/fonttools/fonttools/pull/2285#issuecomment-834652928
|
# https://github.com/fonttools/fonttools/pull/2285#issuecomment-834652928
|
||||||
assert len(struct.pack('i', 0)) == 4
|
assert len(struct.pack('i', 0)) == 4
|
||||||
@ -596,13 +599,16 @@ class BaseTable(object):
|
|||||||
|
|
||||||
raise AttributeError(attr)
|
raise AttributeError(attr)
|
||||||
|
|
||||||
def ensureDecompiled(self):
|
def ensureDecompiled(self, recurse=False):
|
||||||
reader = self.__dict__.get("reader")
|
reader = self.__dict__.get("reader")
|
||||||
if reader:
|
if reader:
|
||||||
del self.reader
|
del self.reader
|
||||||
font = self.font
|
font = self.font
|
||||||
del self.font
|
del self.font
|
||||||
self.decompile(reader, font)
|
self.decompile(reader, font)
|
||||||
|
if recurse:
|
||||||
|
for subtable in self.iterSubTables():
|
||||||
|
subtable.ensureDecompiled(recurse)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def getRecordSize(cls, reader):
|
def getRecordSize(cls, reader):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user