Change erase() method of the sharing map to require that key exists #4484
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.
Previously when
sharing_map.erase(key)
was called, two traversals of the path to the leaf to erase were done. One to check whether the key was in the map, and if it was, a second one to copy and detach the nodes on the path to the leaf. This commit changeserase()
to require that the given key exists in the map. This simplifies the implementation and avoids two traversals of the path to the leaf when it is known that the key exists. If it is not known whether the key exists,sharing_map.has_key(key)
should be explicitely called first.