From b624cfe262c817591e7a7e054b66327b80fe4bd0 Mon Sep 17 00:00:00 2001 From: Qwerasd Date: Tue, 11 Feb 2025 14:20:47 -0500 Subject: [PATCH] fix(terminal): avoid Screen.reset causing use of undefined Fully reset the kitty image storage instead of using the delete handler, previously this caused a memory corruption / likely segfault due to use of undefined, since the delete handler tries to clear the tracked pins for placements, which it gets from the terminal, for which `undefined` was passed in before. --- src/terminal/Screen.zig | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/terminal/Screen.zig b/src/terminal/Screen.zig index 98894a83d..339599728 100644 --- a/src/terminal/Screen.zig +++ b/src/terminal/Screen.zig @@ -278,12 +278,9 @@ pub fn reset(self: *Screen) void { .page_cell = cursor_rac.cell, }; - // Clear kitty graphics - self.kitty_images.delete( - self.alloc, - undefined, // All image deletion doesn't need the terminal - .{ .all = true }, - ); + // Reset kitty graphics storage + self.kitty_images.deinit(self.alloc, self); + self.kitty_images = .{ .dirty = true }; // Reset our basic state self.saved_cursor = null;