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)
|
reader.file.seek(reader.metaOffset)
|
||||||
rawData = reader.file.read(reader.metaLength)
|
rawData = reader.file.read(reader.metaLength)
|
||||||
assert len(rawData) == reader.metaLength
|
assert len(rawData) == reader.metaLength
|
||||||
import zlib
|
data = self._decompress(rawData)
|
||||||
data = zlib.decompress(rawData)
|
|
||||||
assert len(data) == reader.metaOrigLength
|
assert len(data) == reader.metaOrigLength
|
||||||
self.metaData = data
|
self.metaData = data
|
||||||
if reader.privLength:
|
if reader.privLength:
|
||||||
@ -563,6 +562,10 @@ class WOFFFlavorData():
|
|||||||
assert len(data) == reader.privLength
|
assert len(data) == reader.privLength
|
||||||
self.privData = data
|
self.privData = data
|
||||||
|
|
||||||
|
def _decompress(self, rawData):
|
||||||
|
import zlib
|
||||||
|
return zlib.decompress(rawData)
|
||||||
|
|
||||||
|
|
||||||
def calcChecksum(data):
|
def calcChecksum(data):
|
||||||
"""Calculate the checksum for an arbitrary block of data.
|
"""Calculate the checksum for an arbitrary block of data.
|
||||||
|
@ -1168,26 +1168,8 @@ class WOFF2FlavorData(WOFFFlavorData):
|
|||||||
raise ValueError(
|
raise ValueError(
|
||||||
"'glyf' and 'loca' must be transformed (or not) together"
|
"'glyf' and 'loca' must be transformed (or not) together"
|
||||||
)
|
)
|
||||||
|
super(WOFF2FlavorData, self).__init__(reader=reader)
|
||||||
self.majorVersion = None
|
|
||||||
self.minorVersion = None
|
|
||||||
self.metaData = None
|
|
||||||
self.privData = None
|
|
||||||
if 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 = [
|
transformedTables = [
|
||||||
tag
|
tag
|
||||||
for tag, entry in reader.tables.items()
|
for tag, entry in reader.tables.items()
|
||||||
@ -1206,6 +1188,9 @@ class WOFF2FlavorData(WOFFFlavorData):
|
|||||||
|
|
||||||
self.transformedTables = set(transformedTables)
|
self.transformedTables = set(transformedTables)
|
||||||
|
|
||||||
|
def _decompress(self, rawData):
|
||||||
|
return brotli.decompress(rawData)
|
||||||
|
|
||||||
|
|
||||||
def unpackBase128(data):
|
def unpackBase128(data):
|
||||||
r""" Read one to five bytes from UIntBase128-encoded input string, and return
|
r""" Read one to five bytes from UIntBase128-encoded input string, and return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user