Dumpindex: fix #getAllKeys() consistency #46
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 should primarily fix issues when a modification of a TLongLongHashMap occurs while iteration is in progress within #keys(). The most obvious issue is an out-of-bounds array access due to removal; other possible corruptions might be more subtle.
Furthermore, extractions of positions from DumpIndex implementations have apparently always been problematic, insofar as 0L is a perfectly valid position in any dump, though until now the TLongLists used in the retrieval have never been initialized with a non-zero no_entry_value. Except for UniqueIndex, where the no_entry_value had been initialized to a rather arbitrary 10_000L; if this position was ever the actual start of an externalized value inside the dump, we must have missed it consistently in the list of extracted positions.