diff --git a/src/backend/Assembly.zig b/src/backend/Assembly.zig index ec9d671034bd211f4d1064014b7bca08927052e0..33065afa6bb82c687f1f219027c010ab332aebc7 100644 --- a/src/backend/Assembly.zig +++ b/src/backend/Assembly.zig @@ -6,12 +6,30 @@ text: []const u8, const Assembly = @This(); +/// 释放 Assembly 结构体占用的内存资源 +/// +/// 释放由 Assembly 结构体持有的 data 和 text 字段所占用的内存 +/// +/// Parameters: +/// - self: 指向 Assembly 结构体的常量指针 +/// - gpa: 通用分配器,用于释放内存 pub fn deinit(self: *const Assembly, gpa: Allocator) void { gpa.free(self.data); gpa.free(self.text); } -pub fn writeToFile(self: Assembly, file: std.fs.File) !void { +/// 将 Assembly 的 data 和 text 字段写入到指定文件 +/// +/// 使用 scatter-gather I/O 方式同时写入 data 和 text 数据到文件 +/// +/// Parameters: +/// - self: Assembly 结构体的值 +/// - file: 目标文件句柄 +/// +/// Returns: +/// - void: 成功时返回 +/// - error: 文件写入错误时返回相应的错误码 +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 }, .{ .base = self.text.ptr, .len = self.text.len },