mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 14:48:47 +00:00
Make raw_data return [^]T types
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user