Skip to content

Commit 374779b

Browse files
committed
[klauspost/deflate-improve-comp] don't use internal/byteorder
Change-Id: I0ac5571da9585daba9491b360c9a6b4e0cecbcee
1 parent 0a5dc67 commit 374779b

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

src/compress/flate/unsafe_disabled.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44

55
package flate
66

7-
import (
8-
"internal/byteorder"
9-
)
10-
117
type indexer interface {
128
int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64
139
}
@@ -19,15 +15,26 @@ func loadLE8[I indexer](b []byte, i I) byte {
1915

2016
// loadLE32 will load from b at index i.
2117
func loadLE32[I indexer](b []byte, i I) uint32 {
22-
return byteorder.LEUint32(b[i:])
18+
b = b[i : i+4]
19+
return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24
2320
}
2421

2522
// loadLE64 will load from b at index i.
2623
func loadLE64[I indexer](b []byte, i I) uint64 {
27-
return byteorder.LEUint64(b[i:])
24+
b = b[i : i+8]
25+
return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 |
26+
uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56
2827
}
2928

3029
// storeLE64 will store v at start of b.
3130
func storeLE64(b []byte, v uint64) {
32-
byteorder.LEPutUint64(b, v)
31+
_ = b[7] // early bounds check to guarantee safety of writes below
32+
b[0] = byte(v)
33+
b[1] = byte(v >> 8)
34+
b[2] = byte(v >> 16)
35+
b[3] = byte(v >> 24)
36+
b[4] = byte(v >> 32)
37+
b[5] = byte(v >> 40)
38+
b[6] = byte(v >> 48)
39+
b[7] = byte(v >> 56)
3340
}

0 commit comments

Comments
 (0)