| // Copyright 2009 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | // Malloc small size classes. | 
 | // | 
 | // See malloc.go for overview. | 
 | // See also mksizeclasses.go for how we decide what size classes to use. | 
 |  | 
 | package runtime | 
 |  | 
 | // Returns size of the memory block that mallocgc will allocate if you ask for the size. | 
 | func roundupsize(size uintptr) uintptr { | 
 | 	if size < _MaxSmallSize { | 
 | 		if size <= smallSizeMax-8 { | 
 | 			return uintptr(class_to_size[size_to_class8[divRoundUp(size, smallSizeDiv)]]) | 
 | 		} else { | 
 | 			return uintptr(class_to_size[size_to_class128[divRoundUp(size-smallSizeMax, largeSizeDiv)]]) | 
 | 		} | 
 | 	} | 
 | 	if size+_PageSize < size { | 
 | 		return size | 
 | 	} | 
 | 	return alignUp(size, _PageSize) | 
 | } |