[MultiVarStore] Fix up XML read/write
Looks complete now.
This commit is contained in:
parent
c78ba01c80
commit
ec78b572c9
@ -1146,7 +1146,7 @@ class BaseTable(object):
|
||||
except KeyError:
|
||||
raise # XXX on KeyError, raise nice error
|
||||
value = conv.xmlRead(attrs, content, font)
|
||||
if conv.repeat:
|
||||
if conv.repeat is not None:
|
||||
seq = getattr(self, conv.name, None)
|
||||
if seq is None:
|
||||
seq = []
|
||||
|
@ -1912,11 +1912,9 @@ class CFF2Index(BaseConverter):
|
||||
writer.writeData(item)
|
||||
|
||||
def xmlRead(self, attrs, content, font):
|
||||
abort
|
||||
items = []
|
||||
for eName, eAttrs, _eContent in filter(istuple, content):
|
||||
print(eName)
|
||||
return items
|
||||
obj = self.itemClass()
|
||||
obj.fromXML(None, attrs, content, font)
|
||||
return obj
|
||||
|
||||
def xmlWrite(self, xmlWriter, font, value, name, attrs):
|
||||
for i, item in enumerate(value):
|
||||
|
@ -3337,8 +3337,8 @@ otData = [
|
||||
[
|
||||
("uint16", "Format", None, None, "Set to 1."),
|
||||
("LOffset", "VarRegionList", None, None, ""),
|
||||
("uint16", "VarDataCount", None, None, ""),
|
||||
("LOffsetTo(MultiVarData)", "VarData", "VarDataCount", 0, ""),
|
||||
("uint16", "MultiVarDataCount", None, None, ""),
|
||||
("LOffset", "MultiVarData", "MultiVarDataCount", 0, ""),
|
||||
],
|
||||
),
|
||||
# VariableComposites
|
||||
|
@ -344,7 +344,7 @@ class CvarEncodedValues(BaseTable):
|
||||
|
||||
def fromXML(self, name, attrs, content, font):
|
||||
self.populateDefaults()
|
||||
values = safeEval(attrs["value"])
|
||||
self.values = safeEval(attrs["value"])
|
||||
|
||||
|
||||
class VarCompositeGlyph(BaseTable):
|
||||
|
@ -144,12 +144,12 @@ def buildMultiVarData(varRegionIndices, items):
|
||||
return self
|
||||
|
||||
|
||||
def buildMultiVarStore(varRegionList, varDataList):
|
||||
def buildMultiVarStore(varRegionList, multiVarDataList):
|
||||
self = ot.MultiVarStore()
|
||||
self.Format = 1
|
||||
self.VarRegionList = varRegionList
|
||||
self.VarData = list(varDataList)
|
||||
self.VarDataCount = len(self.VarData)
|
||||
self.MultiVarData = list(multiVarDataList)
|
||||
self.MultiVarDataCount = len(self.MultiVarData)
|
||||
return self
|
||||
|
||||
|
||||
|
@ -48,7 +48,7 @@ class OnlineMultiVarStoreBuilder(object):
|
||||
|
||||
def finish(self, optimize=True):
|
||||
self._regionList.RegionCount = len(self._regionList.Region)
|
||||
self._store.VarDataCount = len(self._store.VarData)
|
||||
self._store.MultiVarDataCount = len(self._store.MultiVarData)
|
||||
return self._store
|
||||
|
||||
def _add_MultiVarData(self):
|
||||
@ -71,7 +71,7 @@ class OnlineMultiVarStoreBuilder(object):
|
||||
varDataIdx = self._varDataIndices.get(key)
|
||||
if varDataIdx is not None:
|
||||
self._outer = varDataIdx
|
||||
self._data = self._store.VarData[varDataIdx]
|
||||
self._data = self._store.MultiVarData[varDataIdx]
|
||||
self._cache = self._varDataCaches[key]
|
||||
if len(self._data.Item) == 0xFFFF:
|
||||
# This is full. Need new one.
|
||||
@ -79,8 +79,8 @@ class OnlineMultiVarStoreBuilder(object):
|
||||
|
||||
if varDataIdx is None:
|
||||
self._data = buildMultiVarData(regionIndices, [])
|
||||
self._outer = len(self._store.VarData)
|
||||
self._store.VarData.append(self._data)
|
||||
self._outer = len(self._store.MultiVarData)
|
||||
self._store.MultiVarData.append(self._data)
|
||||
self._varDataIndices[key] = self._outer
|
||||
if key not in self._varDataCaches:
|
||||
self._varDataCaches[key] = {}
|
||||
@ -133,7 +133,7 @@ ot.MultiVarData.addItem = MultiVarData_addItem
|
||||
|
||||
|
||||
def MultiVarStore___bool__(self):
|
||||
return bool(self.VarData)
|
||||
return bool(self.MultiVarData)
|
||||
|
||||
|
||||
ot.MultiVarStore.__bool__ = MultiVarStore___bool__
|
||||
|
Loading…
x
Reference in New Issue
Block a user