} else {
var sizeclass uint8
if size <= smallSizeMax-8 {
- sizeclass = size_to_class8[(size+smallSizeDiv-1)/smallSizeDiv]
+ sizeclass = size_to_class8[divRoundUp(size, smallSizeDiv)]
} else {
- sizeclass = size_to_class128[(size-smallSizeMax+largeSizeDiv-1)/largeSizeDiv]
+ sizeclass = size_to_class128[divRoundUp(size-smallSizeMax, largeSizeDiv)]
}
size = uintptr(class_to_size[sizeclass])
spc := makeSpanClass(sizeclass, noscan)
// Compute how many data and BSS root blocks there are.
nBlocks := func(bytes uintptr) int {
- return int((bytes + rootBlockBytes - 1) / rootBlockBytes)
+ return int(divRoundUp(bytes, rootBlockBytes))
}
work.nDataRoots = 0
// intervening pops. Spans that are pushed after the call may also
// appear in these blocks.
func (b *gcSweepBuf) numBlocks() int {
- return int((atomic.Load(&b.index) + gcSweepBlockEntries - 1) / gcSweepBlockEntries)
+ return int(divRoundUp(uintptr(atomic.Load(&b.index)), gcSweepBlockEntries))
}
// block returns the spans in the i'th block of buffer b. block is
func roundupsize(size uintptr) uintptr {
if size < _MaxSmallSize {
if size <= smallSizeMax-8 {
- return uintptr(class_to_size[size_to_class8[(size+smallSizeDiv-1)/smallSizeDiv]])
+ return uintptr(class_to_size[size_to_class8[divRoundUp(size, smallSizeDiv)]])
} else {
- return uintptr(class_to_size[size_to_class128[(size-smallSizeMax+largeSizeDiv-1)/largeSizeDiv]])
+ return uintptr(class_to_size[size_to_class128[divRoundUp(size-smallSizeMax, largeSizeDiv)]])
}
}
if size+_PageSize < size {