diff --git a/core/hash/crc32.odin b/core/hash/crc32.odin index ccb304472..fead4d74f 100644 --- a/core/hash/crc32.odin +++ b/core/hash/crc32.odin @@ -9,8 +9,8 @@ crc32 :: proc(data: []byte, seed := u32(0)) -> u32 #no_bounds_check { length := len(data) for length != 0 && uintptr(buffer) & 7 != 0 { - crc = crc32_table[0][byte(crc) ~ buffer^] ~ (crc >> 8) - buffer = intrinsics.ptr_offset(buffer, 1) + crc = crc32_table[0][byte(crc) ~ buffer[0]] ~ (crc >> 8) + buffer = buffer[1:] length -= 1 } @@ -28,14 +28,14 @@ crc32 :: proc(data: []byte, seed := u32(0)) -> u32 #no_bounds_check { crc32_table[1][buf[6]] ~ crc32_table[0][buf[7]] - buffer = intrinsics.ptr_offset(buffer, 8) + buffer = buffer[8:] length -= 8 } for length != 0 { - crc = crc32_table[0][byte(crc) ~ buffer^] ~ (crc >> 8) - buffer = intrinsics.ptr_offset(buffer, 1) + crc = crc32_table[0][byte(crc) ~ buffer[0]] ~ (crc >> 8) + buffer = buffer[1:] length -= 1 } diff --git a/core/hash/hash.odin b/core/hash/hash.odin index f2152f1b6..63708a096 100644 --- a/core/hash/hash.odin +++ b/core/hash/hash.odin @@ -15,7 +15,7 @@ adler32 :: proc(data: []byte, seed := u32(1)) -> u32 #no_bounds_check { for len(buf) != 0 && uintptr(buffer) & 7 != 0 { a = (a + u64(buf[0])) b = (b + a) - buffer = intrinsics.ptr_offset(buffer, 1) + buffer = buffer[1:] buf = buf[1:] } @@ -130,9 +130,9 @@ murmur32 :: proc(data: []byte, seed := u32(0)) -> u32 { h1: u32 = seed nblocks := len(data)/4 p := raw_data(data) - p1 := mem.ptr_offset(p, 4*nblocks) + p1 := p[4*nblocks:] - for ; p < p1; p = mem.ptr_offset(p, 4) { + for ; p < p1; p = p[4:] { k1 := (cast(^u32)p)^ k1 *= c1_32 diff --git a/core/runtime/core_builtin.odin b/core/runtime/core_builtin.odin index 43b9ee1bf..cb72e397d 100644 --- a/core/runtime/core_builtin.odin +++ b/core/runtime/core_builtin.odin @@ -600,21 +600,21 @@ card :: proc(s: $S/bit_set[$E; $U]) -> int { @builtin -raw_array_data :: proc "contextless" (a: $P/^($T/[$N]$E)) -> ^E { - return (^E)(a) +raw_array_data :: proc "contextless" (a: $P/^($T/[$N]$E)) -> [^]E { + return ([^]E)(a) } @builtin -raw_slice_data :: proc "contextless" (s: $S/[]$E) -> ^E { +raw_slice_data :: proc "contextless" (s: $S/[]$E) -> [^]E { ptr := (transmute(Raw_Slice)s).data - return (^E)(ptr) + return ([^]E)(ptr) } @builtin -raw_dynamic_array_data :: proc "contextless" (s: $S/[dynamic]$E) -> ^E { +raw_dynamic_array_data :: proc "contextless" (s: $S/[dynamic]$E) -> [^]E { ptr := (transmute(Raw_Dynamic_Array)s).data - return (^E)(ptr) + return ([^]E)(ptr) } @builtin -raw_string_data :: proc "contextless" (s: $S/string) -> ^u8 { +raw_string_data :: proc "contextless" (s: $S/string) -> [^]u8 { return (transmute(Raw_String)s).data }