aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2025-05-15 13:21:36 +0100
committermlugg <mlugg@mlugg.co.uk>2025-05-18 17:10:04 +0100
commitd32829e053af2a0f382d4d692ede85c176c9f803 (patch)
tree1b85e5aa9e44648f78a0aa56110cff226136f5a8 /lib/std/Build
parenta0792e743ff41cf17343fad02bde54240df89419 (diff)
downloadzig-d32829e053af2a0f382d4d692ede85c176c9f803.tar.gz
zig-d32829e053af2a0f382d4d692ede85c176c9f803.zip
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.
Diffstat (limited to 'lib/std/Build')
-rw-r--r--lib/std/Build/Cache.zig5
1 files changed, 2 insertions, 3 deletions
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{});