Clear some forgotten fields in Triangulation::clear(). #15877
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.
In 1d, triangulations store maps from vertex index to manifold and boundary ids. We forgot to clear these fields in
Triangulation::clear()
(or rather the internal functionclear()
calls).I don't think this has an effect that is observable because once you create another triangulation in the object, we add or overwrite the elements of this map, and when we access it we only ever access the elements we have just added or overwritten -- elements that just happen to still be there are simply never accessed, but they take up memory and we should really reset these maps in
clear()
as well.I found this in #15689 where I actually am accessing all elements of these maps in order to translate vertex numbers, and I'm running into cases where some of the elements are invalid (because left-over from a triangulation we no longer store). This patch fixes this.