mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-02 01:40:13 -05:00
grid: don't pre-allocate the entire grid (with all scrollback lines)
The row array may now contain NULL pointers. This means the corresponding row hasn't yet been allocated and initialized. On a resize, we explicitly allocate the visible rows. Uninitialized rows are then allocated the first time they are referenced.
This commit is contained in:
parent
8f0d574dcb
commit
1ff1b3a71e
7 changed files with 68 additions and 45 deletions
12
main.c
12
main.c
|
|
@ -624,15 +624,11 @@ out:
|
|||
if (term.kbd.xkb != NULL)
|
||||
xkb_context_unref(term.kbd.xkb);
|
||||
|
||||
for (int row = 0; row < term.normal.num_rows; row++) {
|
||||
free(term.normal.rows[row]->cells);
|
||||
free(term.normal.rows[row]);
|
||||
}
|
||||
for (int row = 0; row < term.normal.num_rows; row++)
|
||||
grid_row_free(term.normal.rows[row]);
|
||||
free(term.normal.rows);
|
||||
for (int row = 0; row < term.alt.num_rows; row++) {
|
||||
free(term.alt.rows[row]->cells);
|
||||
free(term.alt.rows[row]);
|
||||
}
|
||||
for (int row = 0; row < term.alt.num_rows; row++)
|
||||
grid_row_free(term.alt.rows[row]);
|
||||
free(term.alt.rows);
|
||||
|
||||
for (size_t i = 0; i < sizeof(term.fonts) / sizeof(term.fonts[0]); i++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue