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.
The bug occurs when replacing a removed node. If
child
consumes all the nodes ins_center
, the node is completely removed from the tree which allows its parent to become in balanced. Re-balancing will happen in lines 399-400 and cause the parent to be rotated down to be the right child of its current left child. The problem here is that if the parent contains any overlapping intervals withchild.x_center
, these intervals will not be added to child, since the check for overlaps in lines 403-405 will look at the new parent (i.e. the left child of the old parent). Thus, the invariant that no node overlaps thex_center
of any of its ancestors is broken.