fix memory leak in Node4.remove #790
Merged
+172
−1
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.
SUMMARY
Node4 has a memory leak. The last node references is nulled
so if you have a node containing (a,b,c,d)
and then you remove(0), and remove (2)
The leak is caused by the fist remove, but only becomes a leaf on the second one
the node contains ((b,c), but the child array is (b,c,null, d)
I had a quick look at the higher order odes and they look OK, but need tests
I dont have time to write these now, and cant be sure of not similar leaf being there (or creeping in later), so I think there should be some tests to confirm this
Automated Checks
./gradlew testand made sure that my PR does not break any unit test.