From d32829e053af2a0f382d4d692ede85c176c9f803 Mon Sep 17 00:00:00 2001 From: mlugg Date: Thu, 15 May 2025 13:21:36 +0100 Subject: std.Build.Cache: change contract of `addFilePostContents` This function was broken, because it took ownership of the buffer on error *sometimes*, in a way which the caller could not tell. Rather than trying to be clever, it's easier to just follow the same interface as all other `addFilePost` methods, and not take ownership of the path. This is a breaking change. The next commits will apply it to the compiler, which is the only user of this function in the ziglang/zig repository. --- lib/std/Build/Cache.zig | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lib/std/Build/Cache.zig') diff --git a/lib/std/Build/Cache.zig b/lib/std/Build/Cache.zig index 14719db6f9..bf63acdead 100644 --- a/lib/std/Build/Cache.zig +++ b/lib/std/Build/Cache.zig @@ -1011,17 +1011,16 @@ pub const Manifest = struct { } /// Like `addFilePost` but when the file contents have already been loaded from disk. - /// On success, cache takes ownership of `resolved_path`. pub fn addFilePostContents( self: *Manifest, - resolved_path: []u8, + file_path: []const u8, bytes: []const u8, stat: File.Stat, ) !void { assert(self.manifest_file != null); const gpa = self.cache.gpa; - const prefixed_path = try self.cache.findPrefixResolved(resolved_path); + const prefixed_path = try self.cache.findPrefix(file_path); errdefer gpa.free(prefixed_path.sub_path); const gop = try self.files.getOrPutAdapted(gpa, prefixed_path, FilesAdapter{}); -- cgit v1.2.3