Instead of overloading the line clear function to mean free if

background is default (8), introduce an explicit free function and use
it where a free alone is needed. Likewise, use memmove directly rather
than grid_move_lines where it makes sense. Based on a memory leak fix by
Dan Aloni in GitHub issue 1051.
This commit is contained in:
nicm
2017-08-30 18:13:47 +00:00
parent 17cf1b21c6
commit 6abfd9b8ff
3 changed files with 51 additions and 31 deletions

View File

@ -75,7 +75,7 @@ grid_view_clear_history(struct grid *gd, u_int bg)
/* Scroll the lines into the history. */
for (yy = 0; yy < last; yy++) {
grid_collect_history(gd, bg);
grid_collect_history(gd);
grid_scroll_history(gd, bg);
}
if (last < gd->sy)
@ -100,7 +100,7 @@ grid_view_scroll_region_up(struct grid *gd, u_int rupper, u_int rlower,
u_int bg)
{
if (gd->flags & GRID_HISTORY) {
grid_collect_history(gd, bg);
grid_collect_history(gd);
if (rupper == 0 && rlower == gd->sy - 1)
grid_scroll_history(gd, bg);
else {