1
0
Fork 0
mirror of https://github.com/alacritty/alacritty.git synced 2024-11-25 14:05:41 -05:00

Fix issue with endless allocation loop

Shrinking columns wasn't updating hidden rows in the storage buffer on
resizing. When growing the columns again, this resulted in an endless
allocation loop.

Only one real change was made here, and that was `raw.iter_mut()` to
`raw.iter_mut_raw()`. The method `shrink_cols` was relocated to be
adjacent to `grow_cols` in the code.
This commit is contained in:
Joe Wilm 2018-05-29 11:15:03 -07:00
parent 63de0559dd
commit 0bd08a80ff

View file

@ -252,6 +252,14 @@ impl<T: Copy + Clone> Grid<T> {
self.cols = cols; self.cols = cols;
} }
fn shrink_cols(&mut self, cols: index::Column) {
for row in self.raw.iter_mut_raw() {
row.shrink(cols);
}
self.cols = cols;
}
/// Remove lines from the visible area /// Remove lines from the visible area
/// ///
/// The behavior in Terminal.app and iTerm.app is to keep the cursor at the /// The behavior in Terminal.app and iTerm.app is to keep the cursor at the
@ -437,14 +445,6 @@ impl<T> Grid<T> {
// pub fn swap_lines(&mut self, src: index::Line, dst: index::Line) { // pub fn swap_lines(&mut self, src: index::Line, dst: index::Line) {
// self.raw.swap(*src, *dst); // self.raw.swap(*src, *dst);
// } // }
fn shrink_cols(&mut self, cols: index::Column) {
for row in self.raw.iter_mut() {
row.shrink(cols);
}
self.cols = cols;
}
} }
impl<'a, T> Iterator for GridIterator<'a, T> { impl<'a, T> Iterator for GridIterator<'a, T> {