[otBase] Pass name to subwriter directly
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index bdff909..c05ec5e 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -217,13 +217,14 @@
"""Helper class to gather and assemble data for OpenType tables."""
- def __init__(self, localState=None, tableTag=None):
- self.items = []
- self.pos = None
+ def __init__(self, localState=None, tableTag=None, name=''):
self.localState = localState
self.tableTag = tableTag
+ self.name = name
self.longOffset = False
self.parents = []
+ self.items = []
+ self.pos = None
def __setitem__(self, name, value):
state = self.localState.copy() if self.localState else dict()
@@ -393,8 +394,8 @@
# interface for gathering data, as used by table.compile()
- def getSubWriter(self, longOffset=False):
- subwriter = self.__class__(self.localState, self.tableTag)
+ def getSubWriter(self, longOffset=False, name=''):
+ subwriter = self.__class__(self.localState, self.tableTag, name)
subwriter.longOffset = longOffset
subwriter.parents = [self]
return subwriter
@@ -854,7 +855,7 @@
value = getattr(valueRecord, name, 0)
if isDevice:
if value:
- subWriter = writer.getSubWriter()
+ subWriter = writer.getSubWriter(name=name)
writer.writeSubTable(subWriter)
value.compile(subWriter, font)
else:
diff --git a/Lib/fontTools/ttLib/tables/otConverters.py b/Lib/fontTools/ttLib/tables/otConverters.py
index 3bb4f3e..8509de7 100644
--- a/Lib/fontTools/ttLib/tables/otConverters.py
+++ b/Lib/fontTools/ttLib/tables/otConverters.py
@@ -510,8 +510,7 @@
if value is None:
self.writeNullOffset(writer)
else:
- subWriter = writer.getSubWriter(self.longOffset)
- subWriter.name = self.name
+ subWriter = writer.getSubWriter(self.longOffset, self.name)
if repeatIndex is not None:
subWriter.repeatIndex = repeatIndex
writer.writeSubTable(subWriter)