Fix unsafe integer usage by using string keys instead #5724
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.
In skeleton.js a recursive cantor pairing was used to combine three integers into a unique single integer which is used as a Map key. However, these numbers quickly become very large, exceeding javascript's
Number.MAX_SAFE_INTEGER
. In that case, the Map access to delete edges will fail sometimes resulting in wrongly colored or left over edges.I switched to a simple string concatenation approach to create the unique keys. According to a quick search this shouldn't be much slower and I didn't notice any slow-downs.
URL of deployed dev instance (used for testing):
Steps to test:
orphan-nodes.zip
[Skeleton] Unable to find buffer position for id 78519564543334160
, ...)Issues: