aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Wilm <joe@jwilm.com>2018-05-29 11:15:03 -0700
committerJoe Wilm <joe@jwilm.com>2018-06-02 09:56:50 -0700
commitefc568be4e7da9481f5b6d35ff2854c1ff4cd2be (patch)
tree487eb9ff16e07f44b9b344400569132e64976d64
parent169b87e4ce19f4fd22e5d06ff27f9d3d0ee19b44 (diff)
downloadalacritty-efc568be4e7da9481f5b6d35ff2854c1ff4cd2be.tar.gz
alacritty-efc568be4e7da9481f5b6d35ff2854c1ff4cd2be.zip
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.
-rw-r--r--src/grid/mod.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/grid/mod.rs b/src/grid/mod.rs
index 0998d640..c9829c2e 100644
--- a/src/grid/mod.rs
+++ b/src/grid/mod.rs
@@ -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> {