Behdad Esfahbod 1fbad696c9 Print out object hierarchy, when an Exception happens while compiling otData tables
The common stacktrace like this:

  File "fonttools/Lib/fontTools/ttLib/__init__.py", line 202, in save
    self._writeTable(tag, writer, done)
  File "fonttools/Lib/fontTools/ttLib/__init__.py", line 631, in _writeTable
    tabledata = self.getTableData(tag)
  File "fonttools/Lib/fontTools/ttLib/__init__.py", line 644, in getTableData
    return self.tables[tag].compile(self)
  File "fonttools/Lib/fontTools/ttLib/tables/otBase.py", line 86, in compile
    self.table.compile(writer, font)
  File "fonttools/Lib/fontTools/ttLib/tables/otBase.py", line 681, in compile
    conv.write(writer, font, table, value)
  File "fonttools/Lib/fontTools/ttLib/tables/otConverters.py", line 354, in write
    value.compile(subWriter, font)
  File "fonttools/Lib/fontTools/ttLib/tables/otBase.py", line 661, in compile
    conv.write(writer, font, table, value, i)
  File "fonttools/Lib/fontTools/ttLib/tables/otConverters.py", line 354, in write
    value.compile(subWriter, font)
  File "fonttools/Lib/fontTools/ttLib/tables/otBase.py", line 661, in compile
    conv.write(writer, font, table, value, i)
  File "fonttools/Lib/fontTools/ttLib/tables/otConverters.py", line 354, in write
    value.compile(subWriter, font)
  File "fonttools/Lib/fontTools/ttLib/tables/otBase.py", line 661, in compile
    conv.write(writer, font, table, value, i)
  File "fonttools/Lib/fontTools/ttLib/tables/otConverters.py", line 277, in write
    value.compile(writer, font)
  File "fonttools/Lib/fontTools/ttLib/tables/otBase.py", line 681, in compile
    conv.write(writer, font, table, value)
  File "fonttools/Lib/fontTools/ttLib/tables/otConverters.py", line 175, in write
    writer.writeUShort(value)
  File "fonttools/Lib/fontTools/ttLib/tables/otBase.py", line 457, in writeUShort
    assert 0 <= value < 0x10000, value
AssertionError: None

now has this as the last line:

AssertionError: (None, 'LookupListIndex', 'SubstLookupRecord', 'ChainContextSubst', 'Lookup', 'LookupList')

which means a value of None was tried for writing a LookupListIndex from a ChainContextSubset...

It's a hack, but a very useful one.
2016-01-23 14:20:33 +01:00
..
2015-04-26 02:01:01 -04:00
2015-07-01 12:21:07 +02:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-09-24 17:03:40 +01:00
2015-09-24 17:03:34 +01:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 00:49:36 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00
2015-04-26 02:01:01 -04:00