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:
parent
169b87e4ce
commit
efc568be4e
|
@ -252,6 +252,14 @@ impl<T: Copy + Clone> Grid<T> {
|
|||
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
|
||||
///
|
||||
/// 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) {
|
||||
// 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> {
|
||||
|
|
Loading…
Reference in New Issue