Maybe fix panic (#29352)
Since around the time we shipped block diagnostics, we've been seeing an out of range panic in the editor. Although the code is heavily inlined, so the stacktrace is missing, this seems like a likely place that indexing may have gone wrong. Release Notes: - Fixed a rare panic in the editor
This commit is contained in:
parent
cc57bc7c96
commit
6692bd9f2b
1 changed files with 15 additions and 13 deletions
|
@ -2771,19 +2771,21 @@ impl EditorElement {
|
|||
text_x + layout.width,
|
||||
))
|
||||
};
|
||||
x_position = if rows.contains(&align_to.row()) {
|
||||
x_and_width(&line_layouts[align_to.row().minus(rows.start) as usize])
|
||||
} else {
|
||||
x_and_width(&layout_line(
|
||||
align_to.row(),
|
||||
snapshot,
|
||||
&self.style,
|
||||
editor_width,
|
||||
is_row_soft_wrapped,
|
||||
window,
|
||||
cx,
|
||||
))
|
||||
};
|
||||
let line_ix = align_to.row().0.checked_sub(rows.start.0);
|
||||
x_position =
|
||||
if let Some(layout) = line_ix.and_then(|ix| line_layouts.get(ix as usize)) {
|
||||
x_and_width(&layout)
|
||||
} else {
|
||||
x_and_width(&layout_line(
|
||||
align_to.row(),
|
||||
snapshot,
|
||||
&self.style,
|
||||
editor_width,
|
||||
is_row_soft_wrapped,
|
||||
window,
|
||||
cx,
|
||||
))
|
||||
};
|
||||
|
||||
let anchor_x = x_position.unwrap().0;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue