aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2024-07-10 21:39:11 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2024-07-10 21:39:55 -0400
commitc2316c52285b1319d7b44a7f7135d9e79786fd77 (patch)
tree966c3af5bb0ede2e3f1e7ec69a3bf920c0122914 /src/codegen.zig
parent98f3a262a7aec25e0a7f0872dc7fafc9008be1d2 (diff)
downloadzig-c2316c52285b1319d7b44a7f7135d9e79786fd77.tar.gz
zig-c2316c52285b1319d7b44a7f7135d9e79786fd77.zip
InternPool: make `global_error_set` thread-safe
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig10
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 => {