Fix crash when closing multiple panes simultaneously #19023
+7
−0
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 of the Pull Request
Fixes a crash when multiple panes were closed simultaneously (i.e. using broadcast input).
The root cause of this crash was that we would get a null pointer exception when trying to access a member/function off of a null
_content
. This is becausePane::_CloseChild()
would always pass over the content from the non-closed pane and attempt to hook everything up to it.The fix was to operate similarly to
Pane::Close()
and raise aClosed
event and return early. Since there's no alternative content to attach to, might as well just close the entire pane. This propagates up the stack of listeners to update the UI appropriately and close the parent pane and eventually the entire tab, if necessary.Closes #18071
Closes #17432
Validation Steps Performed