aboutsummaryrefslogtreecommitdiff
path: root/src/link
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-12-05 19:08:37 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-12-23 22:15:07 -0800
commitaafddc2ea13e40a8262d9378aeca2e097a37ac03 (patch)
tree46770e51147a635a43c2e7356e62064466b51c34 /src/link
parenteab354b2f5d7242c036523394023e9824be7eca9 (diff)
downloadzig-aafddc2ea13e40a8262d9378aeca2e097a37ac03.tar.gz
zig-aafddc2ea13e40a8262d9378aeca2e097a37ac03.zip
update all occurrences of close() to close(io)
Diffstat (limited to 'src/link')
-rw-r--r--src/link/C.zig6
-rw-r--r--src/link/Elf.zig6
-rw-r--r--src/link/Lld.zig2
-rw-r--r--src/link/MachO.zig16
-rw-r--r--src/link/MachO/DebugSymbols.zig50
-rw-r--r--src/link/Wasm.zig4
6 files changed, 48 insertions, 36 deletions
diff --git a/src/link/C.zig b/src/link/C.zig
index ce48e85851..04c92443e5 100644
--- a/src/link/C.zig
+++ b/src/link/C.zig
@@ -124,6 +124,7 @@ pub fn createEmpty(
emit: Path,
options: link.File.OpenOptions,
) !*C {
+ const io = comp.io;
const target = &comp.root_mod.resolved_target.result;
assert(target.ofmt == .c);
const optimize_mode = comp.root_mod.optimize_mode;
@@ -139,7 +140,7 @@ pub fn createEmpty(
// Truncation is done on `flush`.
.truncate = false,
});
- errdefer file.close();
+ errdefer file.close(io);
const c_file = try arena.create(C);
@@ -763,6 +764,7 @@ pub fn flushEmitH(zcu: *Zcu) !void {
if (true) return; // emit-h is regressed
const emit_h = zcu.emit_h orelse return;
+ const io = zcu.comp.io;
// We collect a list of buffers to write, and write them all at once with pwritev 😎
const num_buffers = emit_h.decl_table.count() + 1;
@@ -795,7 +797,7 @@ pub fn flushEmitH(zcu: *Zcu) !void {
// make it easier on the file system by doing 1 reallocation instead of two.
.truncate = false,
});
- defer file.close();
+ defer file.close(io);
try file.setEndPos(file_size);
try file.pwritevAll(all_buffers.items, 0);
diff --git a/src/link/Elf.zig b/src/link/Elf.zig
index 69acbe034b..ae7d631f09 100644
--- a/src/link/Elf.zig
+++ b/src/link/Elf.zig
@@ -406,10 +406,12 @@ pub fn open(
}
pub fn deinit(self: *Elf) void {
- const gpa = self.base.comp.gpa;
+ const comp = self.base.comp;
+ const gpa = comp.gpa;
+ const io = comp.io;
for (self.file_handles.items) |fh| {
- fh.close();
+ fh.close(io);
}
self.file_handles.deinit(gpa);
diff --git a/src/link/Lld.zig b/src/link/Lld.zig
index 2345090482..66b032e0a9 100644
--- a/src/link/Lld.zig
+++ b/src/link/Lld.zig
@@ -1628,7 +1628,7 @@ fn spawnLld(comp: *Compilation, arena: Allocator, argv: []const []const u8) !voi
defer comp.dirs.local_cache.handle.deleteFileZ(rsp_path) catch |err|
log.warn("failed to delete response file {s}: {s}", .{ rsp_path, @errorName(err) });
{
- defer rsp_file.close();
+ defer rsp_file.close(io);
var rsp_file_buffer: [1024]u8 = undefined;
var rsp_file_writer = rsp_file.writer(&rsp_file_buffer);
const rsp_writer = &rsp_file_writer.interface;
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
index 2c4ffd6632..471465cea1 100644
--- a/src/link/MachO.zig
+++ b/src/link/MachO.zig
@@ -267,14 +267,16 @@ pub fn open(
}
pub fn deinit(self: *MachO) void {
- const gpa = self.base.comp.gpa;
+ const comp = self.base.comp;
+ const gpa = comp.gpa;
+ const io = comp.io;
if (self.d_sym) |*d_sym| {
d_sym.deinit();
}
for (self.file_handles.items) |handle| {
- handle.close();
+ handle.close(io);
}
self.file_handles.deinit(gpa);
@@ -3257,8 +3259,10 @@ const InitMetadataOptions = struct {
};
pub fn closeDebugInfo(self: *MachO) bool {
+ const comp = self.base.comp;
+ const io = comp.io;
const d_sym = &(self.d_sym orelse return false);
- d_sym.file.?.close();
+ d_sym.file.?.close(io);
d_sym.file = null;
return true;
}
@@ -3269,7 +3273,9 @@ pub fn reopenDebugInfo(self: *MachO) !void {
assert(!self.base.comp.config.use_llvm);
assert(self.base.comp.config.debug_format == .dwarf);
- const gpa = self.base.comp.gpa;
+ const comp = self.base.comp;
+ const io = comp.io;
+ const gpa = comp.gpa;
const sep = fs.path.sep_str;
const d_sym_path = try std.fmt.allocPrint(
gpa,
@@ -3279,7 +3285,7 @@ pub fn reopenDebugInfo(self: *MachO) !void {
defer gpa.free(d_sym_path);
var d_sym_bundle = try self.base.emit.root_dir.handle.makeOpenPath(d_sym_path, .{});
- defer d_sym_bundle.close();
+ defer d_sym_bundle.close(io);
self.d_sym.?.file = try d_sym_bundle.createFile(fs.path.basename(self.base.emit.sub_path), .{
.truncate = false,
diff --git a/src/link/MachO/DebugSymbols.zig b/src/link/MachO/DebugSymbols.zig
index 5d7b9b88c3..8a97f2844f 100644
--- a/src/link/MachO/DebugSymbols.zig
+++ b/src/link/MachO/DebugSymbols.zig
@@ -1,5 +1,28 @@
+const DebugSymbols = @This();
+
+const std = @import("std");
+const Io = std.Io;
+const assert = std.debug.assert;
+const fs = std.fs;
+const log = std.log.scoped(.link_dsym);
+const macho = std.macho;
+const makeStaticString = MachO.makeStaticString;
+const math = std.math;
+const mem = std.mem;
+const Writer = std.Io.Writer;
+const Allocator = std.mem.Allocator;
+
+const link = @import("../../link.zig");
+const MachO = @import("../MachO.zig");
+const StringTable = @import("../StringTable.zig");
+const Type = @import("../../Type.zig");
+const trace = @import("../../tracy.zig").trace;
+const load_commands = @import("load_commands.zig");
+const padToIdeal = MachO.padToIdeal;
+
+io: Io,
allocator: Allocator,
-file: ?fs.File,
+file: ?Io.File,
symtab_cmd: macho.symtab_command = .{},
uuid_cmd: macho.uuid_command = .{ .uuid = [_]u8{0} ** 16 },
@@ -208,7 +231,8 @@ pub fn flush(self: *DebugSymbols, macho_file: *MachO) !void {
pub fn deinit(self: *DebugSymbols) void {
const gpa = self.allocator;
- if (self.file) |file| file.close();
+ const io = self.io;
+ if (self.file) |file| file.close(io);
self.segments.deinit(gpa);
self.sections.deinit(gpa);
self.relocs.deinit(gpa);
@@ -443,25 +467,3 @@ pub fn getSection(self: DebugSymbols, sect: u8) macho.section_64 {
assert(sect < self.sections.items.len);
return self.sections.items[sect];
}
-
-const DebugSymbols = @This();
-
-const std = @import("std");
-const build_options = @import("build_options");
-const assert = std.debug.assert;
-const fs = std.fs;
-const link = @import("../../link.zig");
-const load_commands = @import("load_commands.zig");
-const log = std.log.scoped(.link_dsym);
-const macho = std.macho;
-const makeStaticString = MachO.makeStaticString;
-const math = std.math;
-const mem = std.mem;
-const padToIdeal = MachO.padToIdeal;
-const trace = @import("../../tracy.zig").trace;
-const Writer = std.Io.Writer;
-
-const Allocator = mem.Allocator;
-const MachO = @import("../MachO.zig");
-const StringTable = @import("../StringTable.zig");
-const Type = @import("../../Type.zig");
diff --git a/src/link/Wasm.zig b/src/link/Wasm.zig
index 92307ec40c..160e6cdcc6 100644
--- a/src/link/Wasm.zig
+++ b/src/link/Wasm.zig
@@ -3032,7 +3032,7 @@ fn parseObject(wasm: *Wasm, obj: link.Input.Object) !void {
const io = wasm.base.comp.io;
const gc_sections = wasm.base.gc_sections;
- defer obj.file.close();
+ defer obj.file.close(io);
var file_reader = obj.file.reader(io, &.{});
@@ -3060,7 +3060,7 @@ fn parseArchive(wasm: *Wasm, obj: link.Input.Object) !void {
const io = wasm.base.comp.io;
const gc_sections = wasm.base.gc_sections;
- defer obj.file.close();
+ defer obj.file.close(io);
var file_reader = obj.file.reader(io, &.{});