From 2a0f464f34bc613437c083cb888a63bf07df729a Mon Sep 17 00:00:00 2001 From: Michael Doronin Date: Sat, 6 Nov 2021 12:24:22 +0300 Subject: [PATCH] Remove unnecessary boxing --- src/editor/window.rs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/editor/window.rs b/src/editor/window.rs index 132adc4..1116762 100644 --- a/src/editor/window.rs +++ b/src/editor/window.rs @@ -271,10 +271,14 @@ impl Window { rows: i64, cols: i64, ) { - let y_iter: Box> = if rows > 0 { - Box::new((top as i64 + rows)..bottom as i64) + let mut top_to_bottom; + let mut bottom_to_top; + let y_iter: &mut dyn Iterator = if rows > 0 { + top_to_bottom = (top as i64 + rows)..bottom as i64; + &mut top_to_bottom } else { - Box::new((top as i64..(bottom as i64 + rows)).rev()) + bottom_to_top = (top as i64..(bottom as i64 + rows)).rev(); + &mut bottom_to_top }; self.send_command(WindowDrawCommand::Scroll { @@ -290,11 +294,15 @@ impl Window { // accordingly so that future renders work correctly. for y in y_iter { let dest_y = y - rows; + let mut cols_left; + let mut cols_right; if dest_y >= 0 && dest_y < self.grid.height as i64 { - let x_iter: Box> = if cols > 0 { - Box::new((left as i64 + cols)..right as i64) + let x_iter: &mut dyn Iterator = if cols > 0 { + cols_left = (left as i64 + cols)..right as i64; + &mut cols_left } else { - Box::new((left as i64..(right as i64 + cols)).rev()) + cols_right = (left as i64..(right as i64 + cols)).rev(); + &mut cols_right }; for x in x_iter {