[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)