| ... | @@ -795,31 +795,9 @@ fn make(step: *Step, options: Step.MakeOptions) !void { | ... | @@ -795,31 +795,9 @@ fn make(step: *Step, options: Step.MakeOptions) !void { |
| 795 | defer man.deinit(); | 795 | defer man.deinit(); |
| 796 | | 796 | |
| 797 | if (run.env_map) |env_map| { | 797 | if (run.env_map) |env_map| { |
| 798 | const KV = struct { []const u8, []const u8 }; | 798 | for (env_map.keys(), env_map.values()) |key, value| { |
| 799 | var kv_pairs = try std.array_list.Managed(KV).initCapacity(arena, env_map.count()); | 799 | man.hash.addBytes(key); |
| 800 | var iter = env_map.iterator(); | 800 | man.hash.addBytes(value); |
| 801 | while (iter.next()) |entry| { | | |
| 802 | kv_pairs.appendAssumeCapacity(.{ entry.key_ptr.*, entry.value_ptr.* }); | | |
| 803 | } | | |
| 804 | | | |
| 805 | std.mem.sortUnstable(KV, kv_pairs.items, {}, struct { | | |
| 806 | fn lessThan(_: void, kv1: KV, kv2: KV) bool { | | |
| 807 | const k1 = kv1[0]; | | |
| 808 | const k2 = kv2[0]; | | |
| 809 | | | |
| 810 | if (k1.len != k2.len) return k1.len < k2.len; | | |
| 811 | | | |
| 812 | for (k1, k2) |c1, c2| { | | |
| 813 | if (c1 == c2) continue; | | |
| 814 | return c1 < c2; | | |
| 815 | } | | |
| 816 | unreachable; // two keys cannot be equal | | |
| 817 | } | | |
| 818 | }.lessThan); | | |
| 819 | | | |
| 820 | for (kv_pairs.items) |kv| { | | |
| 821 | man.hash.addBytes(kv[0]); | | |
| 822 | man.hash.addBytes(kv[1]); | | |
| 823 | } | 801 | } |
| 824 | } | 802 | } |
| 825 | | 803 | |