Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam
2026-06-07 16:00:06 +01:00

11
grid.c
View File

@@ -285,9 +285,8 @@ static void
grid_free_line(struct grid *gd, u_int py) grid_free_line(struct grid *gd, u_int py)
{ {
free(gd->linedata[py].celldata); free(gd->linedata[py].celldata);
gd->linedata[py].celldata = NULL;
free(gd->linedata[py].extddata); free(gd->linedata[py].extddata);
gd->linedata[py].extddata = NULL; memset(&gd->linedata[py], 0, sizeof gd->linedata[py]);
} }
/* Free several lines. */ /* Free several lines. */
@@ -332,9 +331,7 @@ void
grid_destroy(struct grid *gd) grid_destroy(struct grid *gd)
{ {
grid_free_lines(gd, 0, gd->hsize + gd->sy); grid_free_lines(gd, 0, gd->hsize + gd->sy);
free(gd->linedata); free(gd->linedata);
free(gd); free(gd);
} }
@@ -414,12 +411,14 @@ grid_collect_history(struct grid *gd, int all)
void void
grid_remove_history(struct grid *gd, u_int ny) grid_remove_history(struct grid *gd, u_int ny)
{ {
u_int yy; u_int yy, start;
if (ny > gd->hsize) if (ny > gd->hsize)
return; return;
start = gd->hsize + gd->sy - ny;
for (yy = 0; yy < ny; yy++) for (yy = 0; yy < ny; yy++)
grid_free_line(gd, gd->hsize + gd->sy - 1 - yy); grid_free_line(gd, start + yy);
memset(&gd->linedata[start], 0, ny * sizeof *gd->linedata);
gd->hsize -= ny; gd->hsize -= ny;
} }