[otConverters] Use array-writers for ItemVariationStore payload

This commit is contained in:
Behdad Esfahbod 2021-04-30 15:59:03 -06:00
parent 36dd271cd5
commit a8af308d70

View File

@ -1627,16 +1627,14 @@ class VarDataValue(BaseConverter):
return values return values
def write(self, writer, font, tableDict, value, repeatIndex=None): def write(self, writer, font, tableDict, values, repeatIndex=None):
regionCount = tableDict["VarRegionCount"] regionCount = tableDict["VarRegionCount"]
shortCount = tableDict["NumShorts"] shortCount = tableDict["NumShorts"]
for i in range(min(regionCount, shortCount)): n1, n2 = min(regionCount, shortCount), max(regionCount, shortCount)
writer.writeShort(value[i]) writer.writeShortArray(values[:n1])
for i in range(min(regionCount, shortCount), regionCount): writer.writeInt8Array(values[n1:regionCount])
writer.writeInt8(value[i]) writer.writeInt8Array([0] * (n2 - regionCount))
for i in range(regionCount, shortCount):
writer.writeInt8(0)
def xmlWrite(self, xmlWriter, font, value, name, attrs): def xmlWrite(self, xmlWriter, font, value, name, attrs):
xmlWriter.simpletag(name, attrs + [("value", value)]) xmlWriter.simpletag(name, attrs + [("value", value)])