Update ConvSym to 2.12.1 (symbol heap overflow fix) #381
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR updates ConvSym from 2.12 to 2.12.1. A minor patch fixes an edge-case bug in symbol generation where if one block is too large and symbol heap exceeds 64 kb, all further blocks are skipped. It also improves ConvSym README and adds some formatting improvements.
Fix background
If symbol generation pushed to absolute limit, where combined symbol texts for a small 64kb slice of ROM exceed 64kb even in compressed form, ConvSym gracefully displays an error like this:
Block 01 in the example covers offsets 0x010000..0x01FFFF (second 64kb of ROM). The error means symbol table container ran out of space to store symbols across this small 64kb slice/block at the beginning of the ROM.
This error isn't critical: some symbols will be lost, but symbol table itself is perfectly valid.
However, there was an overlooked bug, where this error caused all further blocks to be ignored, meaning symbol table will be cut after the first heap overflow.