Rework reflow code so it does not do so much allocation which should be faster

with large histories.
This commit is contained in:
Nicholas Marriott
2013-02-10 18:15:30 +00:00
parent f1ce95915c
commit 99cc0015f8
3 changed files with 129 additions and 38 deletions

View File

@@ -363,15 +363,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);
}