refactored slightly to make later specializations easier

git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@330 4cde692c-a291-49d1-8350-778aa11640f8
This commit is contained in:
jvr 2002-09-10 19:26:38 +00:00
parent 0cf88edbbd
commit f7ef96ccca

View File

@ -299,6 +299,7 @@ class BaseTable:
def decompile(self, reader, font, tableStack=None):
if tableStack is None:
tableStack = TableStack()
self.readFormat(reader)
table = {}
self.__rawTable = table # for debugging
tableStack.push(table)
@ -321,6 +322,7 @@ class BaseTable:
if tableStack is None:
tableStack = TableStack()
table = self.preWrite(font)
self.writeFormat(writer)
tableStack.push(table)
for conv in self.getConverters():
value = table.get(conv.name)
@ -344,6 +346,12 @@ class BaseTable:
conv.write(writer, font, tableStack, value)
tableStack.pop()
def readFormat(self, reader):
pass
def writeFormat(self, writer):
pass
def postRead(self, table, font):
self.__dict__.update(table)
@ -415,14 +423,12 @@ class FormatSwitchingBaseTable(BaseTable):
def getConverterByName(self, name):
return self.convertersByName[self.Format][name]
def decompile(self, reader, font, tableStack=None):
def readFormat(self, reader):
self.Format = reader.readUShort()
assert self.Format <> 0, (self, reader.pos, len(reader.data))
BaseTable.decompile(self, reader, font, tableStack)
def compile(self, writer, font, tableStack=None):
def writeFormat(self, writer):
writer.writeUShort(self.Format)
BaseTable.compile(self, writer, font, tableStack)
#