Handle edge cases from add()ing elements twice #122
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.
Resolves #120
Summary
This fixes a unique edge case that could pop up if an element was
add()
ed twice. Adding an element only expandselementPoolSize
by one, but afterremove()
ing that element, subsequentadd()
s would cause all duplicates to become active at once.Changes:
_sortInvalidated
when they'reremove()
d so that any subsequentadd()
s re-trigger a sortredraw
, rather than counting the number of elements removed to shrinkelementPoolSize
, recalculateelementPoolSize
by finding the last non-.alive
element. This fixes the case where multiple elements are added back with a singleadd
andelementPoolSize
needs to be recalculated.Checklist
npm test
passes