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 169b87e4ce
commit efc568be4e
1 changed files with 8 additions and 8 deletions

View File

@ -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> {