Fixup extension / longoffset
diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py
index 4eb74ac..44fcaa1 100644
--- a/Lib/fontTools/ttLib/tables/otBase.py
+++ b/Lib/fontTools/ttLib/tables/otBase.py
@@ -219,7 +219,7 @@
l = 0
for item in self.items:
if hasattr(item, "getData") or hasattr(item, "getCountData"):
- if self.longOffset:
+ if item.longOffset:
l = l + 4 # sizeof(ULong)
else:
l = l + 2 # sizeof(UShort)
@@ -236,7 +236,7 @@
item = items[i]
if hasattr(item, "getData"):
- if self.longOffset:
+ if item.longOffset:
items[i] = packULong(item.pos - pos)
else:
try:
diff --git a/Lib/fontTools/ttLib/tables/otConverters.py b/Lib/fontTools/ttLib/tables/otConverters.py
index 81d78c9..4c17237 100644
--- a/Lib/fontTools/ttLib/tables/otConverters.py
+++ b/Lib/fontTools/ttLib/tables/otConverters.py
@@ -180,7 +180,7 @@
return reader.readUShort()
def writeNullOffset(self, writer):
- if hasattr(self, "Extension"):
+ if self.longOffset:
writer.writeULong(0)
else:
writer.writeUShort(0)
@@ -204,11 +204,11 @@
return table
def write(self, writer, font, tableDict, value, repeatIndex=None):
- writer.longOffset = self.longOffset
if value is None:
self.writeNullOffset(writer)
else:
subWriter = writer.getSubWriter()
+ subWriter.longOffset = self.longOffset
subWriter.name = self.name
if repeatIndex is not None:
subWriter.repeatIndex = repeatIndex