Fix subtable-split logic

Though, the split logic isn't implemented for GPOS, so I have not
been successful in actually exercising it so far.
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index 96f2b52..7f56af7 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -241,7 +241,7 @@
 				else:
 					try:
 						items[i] = packUShort(item.pos - pos)
-					except AssertionError:
+					except struct.error:
 						# provide data to fix overflow problem.
 						# If the overflow is to a lookup, or from a lookup to a subtable,
 						# just report the current item.
@@ -454,18 +454,18 @@
 				LookupListIndex = self.parent[0].parent[0].repeatIndex
 				SubTableIndex = self.parent[0].repeatIndex
 			else: # who knows how far below the SubTable level we are! Climb back up to the nearest subtable.
-				itemName = ".".join(self.name, item.name)
+				itemName = ".".join([self.name, item.name])
 				p1 = self.parent[0]
 				while p1 and p1.name not in ['ExtSubTable', 'SubTable']:
-					itemName = ".".join(p1.name, item.name)
+					itemName = ".".join([p1.name, item.name])
 					p1 = p1.parent[0]
 				if p1:
 					if p1.name == 'ExtSubTable':
-						LookupListIndex = self.parent[0].parent[0].repeatIndex
-						SubTableIndex = self.parent[0].repeatIndex
+						LookupListIndex = p1.parent[0].parent[0].repeatIndex
+						SubTableIndex = p1.parent[0].repeatIndex
 					else:
-						LookupListIndex = self.parent[0].repeatIndex
-						SubTableIndex = self.repeatIndex
+						LookupListIndex = p1.parent[0].repeatIndex
+						SubTableIndex = p1.repeatIndex
 
 		return OverflowErrorRecord( (self.globalState.tableType, LookupListIndex, SubTableIndex, itemName, itemIndex) )
 
@@ -487,7 +487,6 @@
 
 
 def packUShort(value):
-	assert 0 <= value < 0x10000, value
 	return struct.pack(">H", value)