diff --git a/src/backend/Assembly.zig b/src/backend/Assembly.zig index 914bffb033bfff5923a987cb6e997a23973c3155..51e4be6c3ee55522400adb8f27e6eff94553b9a2 100644 --- a/src/backend/Assembly.zig +++ b/src/backend/Assembly.zig @@ -6,11 +6,22 @@ text: []const u8, const Assembly = @This(); +/// 释放Assembly对象占用的内存 +/// 使用提供的分配器释放data和text字段占用的内存 +/// @param self Assembly对象的常量指针 +/// @param gpa 通用分配器,用于释放内存 pub fn deinit(self: *const Assembly, gpa: Allocator) void { gpa.free(self.data); gpa.free(self.text); } +/// 将程序集数据写入文件 +/// 将data和text两个数据块按顺序写入指定文件 +/// 使用writevAll系统调用一次性写入两个数据块,提高IO效率 +/// @param self Assembly对象,包含要写入的data和text数据 +/// @param file 目标文件句柄 +/// @return 返回void或在写入失败时返回错误 +/// @error 如果文件写入失败,会返回相应的I/O错误 pub fn writeToAllFile(self: Assembly, file: std.fs.File) !void { var vec: [2]std.posix.iovec_const = .{ .{ .base = self.data.ptr, .len = self.data.len },