From 9b7e18f166b1f771a2ad3096831bf145731deb1b Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 21 Mar 2013 16:12:10 +0000 Subject: Rework reflow code so it does not do so much allocation which should be faster with large histories. --- screen.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'screen.c') diff --git a/screen.c b/screen.c index 1c0c0d36..754effc2 100644 --- a/screen.c +++ b/screen.c @@ -362,15 +362,10 @@ screen_check_selection(struct screen *s, u_int px, u_int py) /* Reflow wrapped lines. */ void -screen_reflow(struct screen *s, u_int sx) +screen_reflow(struct screen *s, u_int new_x) { - struct grid *old, *new; + struct grid *old = s->grid; - old = s->grid; - new = grid_create(old->sx, old->sy, old->hlimit); - - s->cy -= grid_reflow(new, old, sx); - s->grid = new; - - grid_destroy(old); + s->grid = grid_create(old->sx, old->sy, old->hlimit); + s->cy -= grid_reflow(s->grid, old, new_x); } -- cgit