From 9d3d2747b393843266053c7fa52e846ffd482cc4 Mon Sep 17 00:00:00 2001 From: Uko Kokņevičs Date: Mon, 12 Sep 2022 03:59:42 +0300 Subject: Zig update --- src/Config.zig | 6 +++--- src/Installation.zig | 3 ++- src/install.zig | 8 +++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Config.zig b/src/Config.zig index a7affa0..4eb58cc 100644 --- a/src/Config.zig +++ b/src/Config.zig @@ -44,13 +44,13 @@ pub fn init(allocator: Allocator) !Config { try self.readConfig(file); } - + return self; } pub fn deinit(self: *Config) void { self.supported_targets.deinit(); - + self.* = undefined; } @@ -85,7 +85,7 @@ fn readConfig(self: *Config, file: File) !void { const cross_target = try CrossTarget.parse(.{ .arch_os_abi = supported_target.String, }); - const native_target_info = try NativeTargetInfo.detect(allocator, cross_target); + const native_target_info = try NativeTargetInfo.detect(cross_target); try self.supported_targets.append(native_target_info.target); } } diff --git a/src/Installation.zig b/src/Installation.zig index 5efe128..4f7a48d 100644 --- a/src/Installation.zig +++ b/src/Installation.zig @@ -153,7 +153,8 @@ pub fn getAvailableList(config: Config) !Installations { var it = vt.root.Object.iterator(); while (it.next()) |kv| { - if (try parseInstallation(config, kv.key_ptr.*, kv.value_ptr.*)) |*installation| { + var installation_opt = try parseInstallation(config, kv.key_ptr.*, kv.value_ptr.*); + if (installation_opt) |*installation| { errdefer installation.deinit(); var name = try allocator.dupe(u8, kv.key_ptr.*); diff --git a/src/install.zig b/src/install.zig index f9c7309..27db4bb 100644 --- a/src/install.zig +++ b/src/install.zig @@ -20,7 +20,7 @@ pub const max_args = 1; pub fn main(comptime Result: type, config: Config, res: Result) !void { const allocator = config.allocator; - + var available = try Installation.getAvailableList(config); defer Installation.deinitMap(allocator, &available); @@ -80,13 +80,15 @@ pub fn perform(allocator: Allocator, name: []const u8, force: bool, available: I try archive.supportFormat(.all); try archive.openFilename(tmpname, 10240); - while (try archive.nextHeader()) |*entry| { + while (try archive.nextHeader()) |entry_c| { + var entry = entry_c; + const source = entry.pathname(); const dest = try preparePathname(allocator, installation_dir, source); defer allocator.free(dest); entry.setPathname(dest); - try archive.extract(entry.*, 0); + try archive.extract(entry, 0); } std.log.info("Installed to {s}", .{installation_dir}); -- cgit v1.2.3