From eb718ceffa0fd656a169a1dd2794e6e99bf5bcaa Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 26 May 2024 12:08:15 -0700 Subject: [PATCH] std.process: fix compilation on 32-bit targets --- lib/std/process.zig | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/std/process.zig b/lib/std/process.zig index 7d1f817337..5fb36f991d 100644 --- a/lib/std/process.zig +++ b/lib/std/process.zig @@ -1836,11 +1836,15 @@ pub fn createEnvironFromMap( break :a .nothing; }; - const envp_count: usize = @intCast(@as(isize, map.count()) + @as(isize, switch (zig_progress_action) { - .add => 1, - .delete => -1, - .nothing, .edit => 0, - })); + const envp_count: usize = c: { + var count: usize = map.count(); + switch (zig_progress_action) { + .add => count += 1, + .delete => count -= 1, + .nothing, .edit => {}, + } + break :c count; + }; const envp_buf = try arena.allocSentinel(?[*:0]u8, envp_count, null); var i: usize = 0; @@ -1901,11 +1905,15 @@ pub fn createEnvironFromExisting( break :a .nothing; }; - const envp_count: usize = @intCast(@as(isize, @intCast(existing_count)) + @as(isize, switch (zig_progress_action) { - .add => 1, - .delete => -1, - .nothing, .edit => 0, - })); + const envp_count: usize = c: { + var count: usize = existing_count; + switch (zig_progress_action) { + .add => count += 1, + .delete => count -= 1, + .nothing, .edit => {}, + } + break :c count; + }; const envp_buf = try arena.allocSentinel(?[*:0]u8, envp_count, null); var i: usize = 0;