editor: Fix panics that could occur when content mask had negative bounds (#47327) (cherry-pick to preview)#47502
Merged
zed-zippy[bot] merged 1 commit intov0.221.xfrom Jan 23, 2026
Conversation
…unds (#47327) Closes #47157 This panic happened because the editor was using `window.content_mask` to get the visible bounds, which had a negative value for its height in some cases. This happened for three reasons: 1. `Bounds::from_corners` returns a negative size if callers pass in corners where `bottom_right < top_left`. I originally wanted to add error checking to this function but didn't, because it might be better to move the error checking higher up. For now I'm going to push a fix and figure out a better solution later 2. `Bounds::intersect` could return negative-sized bounds when the two bounds didn't overlap, instead of returning a zero sized bounds. 3. `Style::paint` sometimes passed invalid corner values to `Bounds::from_corners` (where the computed bottom-right was above/left of the top-left). Release Notes: - editor: Fix a crash that could happen when editor visible line height is zero --------- Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Cherry-pick of #47327 to preview
Closes #47157
This panic happened because the editor was using
window.content_maskto get the visible bounds, which had a negative value for its height in
some cases.
This happened for three reasons:
Bounds::from_cornersreturns a negative size if callers pass incorners where
bottom_right < top_left. I originally wanted to adderror checking to this function but didn't, because it might be better
to move the error checking higher up. For now I'm going to push a fix
and figure out a better solution later
Bounds::intersectcould return negative-sized bounds when the twobounds didn't overlap, instead of returning a zero sized bounds.
Style::paintsometimes passed invalid corner values toBounds::from_corners(where the computed bottom-right was above/leftof the top-left).
Release Notes:
is zero
Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>