From 8d04cffd9137b4a8c56b356de98b32023ae752f3 Mon Sep 17 00:00:00 2001 From: Rob9315 Date: Fri, 9 Jan 2026 02:54:49 +0100 Subject: [PATCH] fix stale reference bug when converting images --- src/Vaxis.zig | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Vaxis.zig b/src/Vaxis.zig index a9bb38b0..956d6d56 100644 --- a/src/Vaxis.zig +++ b/src/Vaxis.zig @@ -1013,7 +1013,7 @@ pub fn transmitImage( self: *Vaxis, alloc: std.mem.Allocator, tty: *IoWriter, - img: *zigimg.Image, + img: *const zigimg.Image, format: Image.TransmitFormat, ) !Image { if (!self.caps.kitty_graphics) return error.NoGraphicsCapability; @@ -1021,6 +1021,8 @@ pub fn transmitImage( var arena = std.heap.ArenaAllocator.init(alloc); defer arena.deinit(); + var img_modifiable = img.*; + const buf = switch (format) { .png => png: { const png_buf = try arena.allocator().alloc(u8, img.imageByteSize()); @@ -1028,12 +1030,12 @@ pub fn transmitImage( break :png png; }, .rgb => rgb: { - try img.convert(arena.allocator(), .rgb24); - break :rgb img.rawBytes(); + try img_modifiable.convertNoFree(arena.allocator(), .rgb24); + break :rgb img_modifiable.rawBytes(); }, .rgba => rgba: { - try img.convert(arena.allocator(), .rgba32); - break :rgba img.rawBytes(); + try img_modifiable.convertNoFree(arena.allocator(), .rgba32); + break :rgba img_modifiable.rawBytes(); }, };