diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py index 53abd13b4..18c17d72f 100644 --- a/Lib/fontTools/ttLib/tables/otBase.py +++ b/Lib/fontTools/ttLib/tables/otBase.py @@ -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 = [] diff --git a/Lib/fontTools/ttLib/tables/otConverters.py b/Lib/fontTools/ttLib/tables/otConverters.py index 789ec7cfb..8bd685d0b 100644 --- a/Lib/fontTools/ttLib/tables/otConverters.py +++ b/Lib/fontTools/ttLib/tables/otConverters.py @@ -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): diff --git a/Lib/fontTools/ttLib/tables/otData.py b/Lib/fontTools/ttLib/tables/otData.py index a71c25476..9c9efc595 100644 --- a/Lib/fontTools/ttLib/tables/otData.py +++ b/Lib/fontTools/ttLib/tables/otData.py @@ -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 diff --git a/Lib/fontTools/ttLib/tables/otTables.py b/Lib/fontTools/ttLib/tables/otTables.py index 87d006983..3a239aca5 100644 --- a/Lib/fontTools/ttLib/tables/otTables.py +++ b/Lib/fontTools/ttLib/tables/otTables.py @@ -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): diff --git a/Lib/fontTools/varLib/builder.py b/Lib/fontTools/varLib/builder.py index d5c146762..f05802770 100644 --- a/Lib/fontTools/varLib/builder.py +++ b/Lib/fontTools/varLib/builder.py @@ -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 diff --git a/Lib/fontTools/varLib/multiVarStore.py b/Lib/fontTools/varLib/multiVarStore.py index 0d06ffd5e..a0b246a11 100644 --- a/Lib/fontTools/varLib/multiVarStore.py +++ b/Lib/fontTools/varLib/multiVarStore.py @@ -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__