diff --git a/src/config/Config.zig b/src/config/Config.zig index 9ee818b8b..e68ad3da8 100644 --- a/src/config/Config.zig +++ b/src/config/Config.zig @@ -3478,10 +3478,17 @@ pub const RepeatableString = struct { /// Deep copy of the struct. Required by Config. pub fn clone(self: *const Self, alloc: Allocator) Allocator.Error!Self { // Copy the list and all the strings in the list. - const list = try self.list.clone(alloc); - for (list.items) |*item| { - const copy = try alloc.dupeZ(u8, item.*); - item.* = copy; + var list = try std.ArrayListUnmanaged([:0]const u8).initCapacity( + alloc, + self.list.items.len, + ); + errdefer { + for (list.items) |item| alloc.free(item); + list.deinit(alloc); + } + for (self.list.items) |item| { + const copy = try alloc.dupeZ(u8, item); + list.appendAssumeCapacity(copy); } return .{ .list = list }; diff --git a/src/renderer/Metal.zig b/src/renderer/Metal.zig index 7b1b83b8d..fbd6c401b 100644 --- a/src/renderer/Metal.zig +++ b/src/renderer/Metal.zig @@ -379,7 +379,7 @@ pub const DerivedConfig = struct { const custom_shaders = try config.@"custom-shader".clone(alloc); // Copy our font features - const font_features = try config.@"font-feature".list.clone(alloc); + const font_features = try config.@"font-feature".clone(alloc); // Get our font styles var font_styles = font.CodepointResolver.StyleStatus.initFill(true); @@ -398,7 +398,7 @@ pub const DerivedConfig = struct { return .{ .background_opacity = @max(0, @min(1, config.@"background-opacity")), .font_thicken = config.@"font-thicken", - .font_features = font_features, + .font_features = font_features.list, .font_styles = font_styles, .cursor_color = if (!cursor_invert and config.@"cursor-color" != null) diff --git a/src/renderer/OpenGL.zig b/src/renderer/OpenGL.zig index 6749645ef..481f5b0db 100644 --- a/src/renderer/OpenGL.zig +++ b/src/renderer/OpenGL.zig @@ -290,7 +290,7 @@ pub const DerivedConfig = struct { const custom_shaders = try config.@"custom-shader".clone(alloc); // Copy our font features - const font_features = try config.@"font-feature".list.clone(alloc); + const font_features = try config.@"font-feature".clone(alloc); // Get our font styles var font_styles = font.CodepointResolver.StyleStatus.initFill(true); @@ -309,7 +309,7 @@ pub const DerivedConfig = struct { return .{ .background_opacity = @max(0, @min(1, config.@"background-opacity")), .font_thicken = config.@"font-thicken", - .font_features = font_features, + .font_features = font_features.list, .font_styles = font_styles, .cursor_color = if (!cursor_invert and config.@"cursor-color" != null)