diff --git a/src/terminal/ref_counted_set.zig b/src/terminal/ref_counted_set.zig index c0395bdc3..39c3ec55a 100644 --- a/src/terminal/ref_counted_set.zig +++ b/src/terminal/ref_counted_set.zig @@ -141,10 +141,12 @@ pub fn RefCountedSet( const items_cap: Id = @intFromFloat(load_factor * @as(f64, @floatFromInt(table_cap))); const table_start = 0; - const table_end = table_start + table_cap * @sizeOf(Id); + const table_cap_usize: usize = @intCast(table_cap); + const table_end = table_start + table_cap_usize * @sizeOf(Id); const items_start = std.mem.alignForward(usize, table_end, @alignOf(Item)); - const items_end = items_start + items_cap * @sizeOf(Item); + const items_cap_usize: usize = @intCast(items_cap); + const items_end = items_start + items_cap_usize * @sizeOf(Item); const total_size = items_end; diff --git a/src/terminal/style.zig b/src/terminal/style.zig index c1b6fcf54..813411a73 100644 --- a/src/terminal/style.zig +++ b/src/terminal/style.zig @@ -314,3 +314,8 @@ test "Set basic usage" { set.release(buf, id); try testing.expect(set.refCount(buf, id) == 0); } + +test "Set capacities" { + // We want to support at least this many styles without overflowing. + _ = Set.layout(16384); +}