aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/spirv/Module.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen/spirv/Module.zig')
-rw-r--r--src/codegen/spirv/Module.zig7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/codegen/spirv/Module.zig b/src/codegen/spirv/Module.zig
index 7ae6cb0c6a..be8e5b24d1 100644
--- a/src/codegen/spirv/Module.zig
+++ b/src/codegen/spirv/Module.zig
@@ -393,11 +393,14 @@ pub fn resolveSourceFileName(self: *Module, decl: *ZigDecl) !IdRef {
/// be emitted at this point.
pub fn resolveType(self: *Module, ty: Type) !Type.Ref {
const result = try self.type_cache.getOrPut(self.gpa, ty);
+ const index = @intToEnum(Type.Ref, result.index);
+
if (!result.found_existing) {
- result.value_ptr.* = try self.emitType(ty);
+ const ref = try self.emitType(ty);
+ self.type_cache.values()[result.index] = ref;
}
- return @intToEnum(Type.Ref, result.index);
+ return index;
}
pub fn resolveTypeId(self: *Module, ty: Type) !IdResultType {