From 98c4afd018532adc6b3c6011027f069541b82ee9 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sat, 18 Oct 2025 01:33:05 +0200 Subject: % fix mtimes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Robert Günzler --- src/fs.zig | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) (limited to 'src/fs.zig') diff --git a/src/fs.zig b/src/fs.zig index adcd0c3..8eaf7c2 100644 --- a/src/fs.zig +++ b/src/fs.zig @@ -127,20 +127,19 @@ pub fn stripExtension(path: []const u8) ![]const u8 { } pub fn joinPathAndFilename(alloc: std.mem.Allocator, paths: []const []const u8, filename_parts: []const []const u8) ![]const u8 { - const filename = try std.mem.concat(alloc, u8, filename_parts); - defer alloc.free(filename); + var buf: [std.os.linux.PATH_MAX]u8 = undefined; + var fba = std.heap.FixedBufferAllocator.init(&buf); - var p = try std.ArrayList([]const u8).initCapacity(alloc, paths.len + 1); + const filename = try std.mem.concat(fba.allocator(), u8, filename_parts); + + var p = try std.ArrayList([]const u8).initCapacity(fba.allocator(), paths.len + 1); defer p.deinit(); p.appendSliceAssumeCapacity(paths); p.appendAssumeCapacity(filename); - const paths2 = try p.toOwnedSlice(); - defer alloc.free(paths2); - - std.debug.assert(paths.len + 1 == paths2.len); - return try std.fs.path.join(alloc, paths2); + std.debug.assert(paths.len + 1 == p.items.len); + return try std.fs.path.join(alloc, p.items); } pub fn getGitTime(path: []const u8) !std.posix.timespec { -- cgit 1.4.1