terminal: page size should be accounted every creation

This commit is contained in:
Mitchell Hashimoto
2024-03-09 20:48:46 -08:00
parent 21f09a9159
commit 9c2a5bccc1
2 changed files with 8 additions and 3 deletions

View File

@ -1387,8 +1387,8 @@ pub fn grow(self: *PageList) !?*List.Node {
self.pages.append(next_page);
next_page.data.size.rows = 1;
// Accounting
self.page_size += PagePool.item_size;
// We should never be more than our max size here because we've
// verified the case above.
assert(self.page_size <= self.max_size);
return next_page;
@ -1412,6 +1412,11 @@ fn createPage(self: *PageList, cap: Capacity) !*List.Node {
};
page.data.size.rows = 0;
// Accumulate page size now. We don't assert or check max size because
// we may exceed it here temporarily as we are allocating pages before
// destroy.
self.page_size += PagePool.item_size;
return page;
}

View File

@ -635,7 +635,7 @@ pub const ImageStorage = struct {
// Our pin for the placement
fn trackPin(
t: *terminal.Terminal,
pt: point.Point.Coordinate,
pt: point.Coordinate,
) !*PageList.Pin {
return try t.screen.pages.trackPin(t.screen.pages.pin(.{
.active = pt,