Merge pull request #1929 from simoncozens/woff2-repeated-init
Use inheritance to avoid repeated code in WOFF2FlavorData initializer
This commit is contained in:
commit
5128715565
@ -553,8 +553,7 @@ class WOFFFlavorData():
|
||||
reader.file.seek(reader.metaOffset)
|
||||
rawData = reader.file.read(reader.metaLength)
|
||||
assert len(rawData) == reader.metaLength
|
||||
import zlib
|
||||
data = zlib.decompress(rawData)
|
||||
data = self._decompress(rawData)
|
||||
assert len(data) == reader.metaOrigLength
|
||||
self.metaData = data
|
||||
if reader.privLength:
|
||||
@ -563,6 +562,10 @@ class WOFFFlavorData():
|
||||
assert len(data) == reader.privLength
|
||||
self.privData = data
|
||||
|
||||
def _decompress(self, rawData):
|
||||
import zlib
|
||||
return zlib.decompress(rawData)
|
||||
|
||||
|
||||
def calcChecksum(data):
|
||||
"""Calculate the checksum for an arbitrary block of data.
|
||||
|
@ -1168,26 +1168,8 @@ class WOFF2FlavorData(WOFFFlavorData):
|
||||
raise ValueError(
|
||||
"'glyf' and 'loca' must be transformed (or not) together"
|
||||
)
|
||||
|
||||
self.majorVersion = None
|
||||
self.minorVersion = None
|
||||
self.metaData = None
|
||||
self.privData = None
|
||||
super(WOFF2FlavorData, self).__init__(reader=reader)
|
||||
if reader:
|
||||
self.majorVersion = reader.majorVersion
|
||||
self.minorVersion = reader.minorVersion
|
||||
if reader.metaLength:
|
||||
reader.file.seek(reader.metaOffset)
|
||||
rawData = reader.file.read(reader.metaLength)
|
||||
assert len(rawData) == reader.metaLength
|
||||
metaData = brotli.decompress(rawData)
|
||||
assert len(metaData) == reader.metaOrigLength
|
||||
self.metaData = metaData
|
||||
if reader.privLength:
|
||||
reader.file.seek(reader.privOffset)
|
||||
privData = reader.file.read(reader.privLength)
|
||||
assert len(privData) == reader.privLength
|
||||
self.privData = privData
|
||||
transformedTables = [
|
||||
tag
|
||||
for tag, entry in reader.tables.items()
|
||||
@ -1206,6 +1188,9 @@ class WOFF2FlavorData(WOFFFlavorData):
|
||||
|
||||
self.transformedTables = set(transformedTables)
|
||||
|
||||
def _decompress(self, rawData):
|
||||
return brotli.decompress(rawData)
|
||||
|
||||
|
||||
def unpackBase128(data):
|
||||
r""" Read one to five bytes from UIntBase128-encoded input string, and return
|
||||
|
Loading…
x
Reference in New Issue
Block a user