well-goknown/vendor/github.com/valyala/fasthttp/round2_64.go

24 lines
392 B
Go
Raw Permalink Normal View History

2024-09-26 01:59:44 +00:00
//go:build amd64 || arm64 || ppc64 || ppc64le || riscv64 || s390x
package fasthttp
func roundUpForSliceCap(n int) int {
if n <= 0 {
return 0
}
// Above 100MB, we don't round up as the overhead is too large.
if n > 100*1024*1024 {
return n
}
2024-09-26 01:59:44 +00:00
x := uint64(n - 1) // #nosec G115
x |= x >> 1
x |= x >> 2
x |= x >> 4
x |= x >> 8
x |= x >> 16
2024-09-26 01:59:44 +00:00
return int(x + 1) // #nosec G115
}