1
0
mirror of https://github.com/golang/go synced 2024-11-19 02:14:43 -07:00

runtime: make Go and C mallocgc signatures match

Previously, the flags argument to mallocgc was an int in Go,
but a uint32 in C.  Change the Go type to use uint32 so these
agree.  The largest flag value is 2 (and of course no flag
values are negative), so this won't change anything on little
endian architectures, but it matters on big endian.

LGTM=rsc
R=khr, rsc
CC=golang-codereviews
https://golang.org/cl/169920043
This commit is contained in:
Austin Clements 2014-11-03 13:26:46 -05:00
parent b802240300
commit 489ff75ab8

View File

@ -43,7 +43,7 @@ var zerobase uintptr
// Allocate an object of size bytes. // Allocate an object of size bytes.
// Small objects are allocated from the per-P cache's free lists. // Small objects are allocated from the per-P cache's free lists.
// Large objects (> 32 kB) are allocated straight from the heap. // Large objects (> 32 kB) are allocated straight from the heap.
func mallocgc(size uintptr, typ *_type, flags int) unsafe.Pointer { func mallocgc(size uintptr, typ *_type, flags uint32) unsafe.Pointer {
if size == 0 { if size == 0 {
return unsafe.Pointer(&zerobase) return unsafe.Pointer(&zerobase)
} }
@ -346,7 +346,7 @@ marked:
// implementation of new builtin // implementation of new builtin
func newobject(typ *_type) unsafe.Pointer { func newobject(typ *_type) unsafe.Pointer {
flags := 0 flags := uint32(0)
if typ.kind&kindNoPointers != 0 { if typ.kind&kindNoPointers != 0 {
flags |= flagNoScan flags |= flagNoScan
} }
@ -355,7 +355,7 @@ func newobject(typ *_type) unsafe.Pointer {
// implementation of make builtin for slices // implementation of make builtin for slices
func newarray(typ *_type, n uintptr) unsafe.Pointer { func newarray(typ *_type, n uintptr) unsafe.Pointer {
flags := 0 flags := uint32(0)
if typ.kind&kindNoPointers != 0 { if typ.kind&kindNoPointers != 0 {
flags |= flagNoScan flags |= flagNoScan
} }