diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2024-07-10 21:39:11 -0400 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2024-07-10 21:39:55 -0400 |
| commit | c2316c52285b1319d7b44a7f7135d9e79786fd77 (patch) | |
| tree | 966c3af5bb0ede2e3f1e7ec69a3bf920c0122914 /src/codegen.zig | |
| parent | 98f3a262a7aec25e0a7f0872dc7fafc9008be1d2 (diff) | |
| download | zig-c2316c52285b1319d7b44a7f7135d9e79786fd77.tar.gz zig-c2316c52285b1319d7b44a7f7135d9e79786fd77.zip | |
InternPool: make `global_error_set` thread-safe
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 0513682d73..d05cb42728 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -137,10 +137,10 @@ pub fn generateLazySymbol( if (lazy_sym.ty.isAnyError(pt.zcu)) { alignment.* = .@"4"; - const err_names = pt.zcu.global_error_set.keys(); + const err_names = ip.global_error_set.getNamesFromMainThread(); mem.writeInt(u32, try code.addManyAsArray(4), @intCast(err_names.len), endian); var offset = code.items.len; - try code.resize((1 + err_names.len + 1) * 4); + try code.resize((err_names.len + 1) * 4); for (err_names) |err_name_nts| { const err_name = err_name_nts.toSlice(ip); mem.writeInt(u32, code.items[offset..][0..4], @intCast(code.items.len), endian); @@ -243,13 +243,13 @@ pub fn generateSymbol( int_val.writeTwosComplement(try code.addManyAsSlice(abi_size), endian); }, .err => |err| { - const int = try mod.getErrorValue(err.name); + const int = try pt.getErrorValue(err.name); try code.writer().writeInt(u16, @intCast(int), endian); }, .error_union => |error_union| { const payload_ty = ty.errorUnionPayload(mod); const err_val: u16 = switch (error_union.val) { - .err_name => |err_name| @intCast(try mod.getErrorValue(err_name)), + .err_name => |err_name| @intCast(try pt.getErrorValue(err_name)), .payload => 0, }; @@ -1058,7 +1058,7 @@ pub fn genTypedValue( }, .ErrorSet => { const err_name = ip.indexToKey(val.toIntern()).err.name; - const error_index = zcu.global_error_set.getIndex(err_name).?; + const error_index = try pt.getErrorValue(err_name); return GenResult.mcv(.{ .immediate = error_index }); }, .ErrorUnion => { |
