Fix crash when resizing Alacritty

Fixes #3088.
This commit is contained in:
Christian Duerr 2019-12-12 16:02:07 +01:00 committed by GitHub
parent 6deb274b82
commit e99057b179
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 1 deletions

View File

@ -254,7 +254,7 @@ impl<T> Storage<T> {
debug_assert!(count.abs() as usize <= self.inner.len());
let len = self.inner.len();
self.zero = self.wrap_index((self.zero as isize + count + len as isize) as usize);
self.zero = (self.zero as isize + count + len as isize) as usize % self.len;
}
/// Rotate the grid up, moving all existing lines down in history.
@ -838,4 +838,22 @@ mod test {
assert_eq!(storage.zero, shrinking_expected.zero);
assert_eq!(storage.len, shrinking_expected.len);
}
#[test]
fn rotate_wrap_zero() {
let mut storage = Storage {
inner: vec![
Row::new(Column(1), &'-'),
Row::new(Column(1), &'-'),
Row::new(Column(1), &'-'),
],
zero: 2,
visible_lines: Line(0),
len: 3,
};
storage.rotate(2);
assert!(storage.zero < storage.inner.len());
}
}