empty kv dict can crash when dumping dict #359
Merged
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.
Fix a corner case when a kv dict is empty and being iterated over.
0if dict is empty and check start_state!=0for lookupfixes #360
[1] A transition is valid if
labels[start_state + c] == c, we ran into this issue because forstart_state = 1the check looks like this:labels[1 + 0] == 0- Aslabelsare initialized with0- and because for empty dicts we write nothing, we had a transition that should not exist. This gets fixed by initializinglabels[0](bonus) andlabels[0]to something>1. For non-empty dicts construction takes care of settinglabels[x], so no illegal state gets introduced.