From 31aee50c1a96b7e72b42ee885636b27fbcac8eb4 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 5 May 2023 19:13:43 -0700 Subject: InternPool: add a slice encoding This uses the data field to reference its pointer field type, which allows for efficient and infallible access of a slice type's pointer type. --- src/value.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/value.zig') diff --git a/src/value.zig b/src/value.zig index a34a022dea..f8188c64ab 100644 --- a/src/value.zig +++ b/src/value.zig @@ -2078,7 +2078,7 @@ pub const Value = struct { } var ptr_buf: Type.SlicePtrFieldTypeBuffer = undefined; - const ptr_ty = ty.slicePtrFieldType(&ptr_buf); + const ptr_ty = ty.slicePtrFieldType(&ptr_buf, mod); return eqlAdvanced(a_payload.ptr, ptr_ty, b_payload.ptr, ptr_ty, mod, opt_sema); }, @@ -2237,7 +2237,7 @@ pub const Value = struct { } var ptr_buf: Type.SlicePtrFieldTypeBuffer = undefined; - const ptr_ty = ty.slicePtrFieldType(&ptr_buf); + const ptr_ty = ty.slicePtrFieldType(&ptr_buf, mod); const a_ptr = switch (a_ty.ptrSize(mod)) { .Slice => a.slicePtr(), .One => a, @@ -2376,7 +2376,7 @@ pub const Value = struct { .slice => { const slice = val.castTag(.slice).?.data; var ptr_buf: Type.SlicePtrFieldTypeBuffer = undefined; - const ptr_ty = ty.slicePtrFieldType(&ptr_buf); + const ptr_ty = ty.slicePtrFieldType(&ptr_buf, mod); hash(slice.ptr, ptr_ty, hasher, mod); hash(slice.len, Type.usize, hasher, mod); }, @@ -2499,7 +2499,7 @@ pub const Value = struct { .slice => { const slice = val.castTag(.slice).?.data; var ptr_buf: Type.SlicePtrFieldTypeBuffer = undefined; - const ptr_ty = ty.slicePtrFieldType(&ptr_buf); + const ptr_ty = ty.slicePtrFieldType(&ptr_buf, mod); slice.ptr.hashUncoerced(ptr_ty, hasher, mod); }, else => val.hashPtr(hasher, mod), -- cgit v1.2.3