diff options
Diffstat (limited to 'libgo/go/internal/reflectlite')
-rw-r--r-- | libgo/go/internal/reflectlite/swapper.go | 7 | ||||
-rw-r--r-- | libgo/go/internal/reflectlite/value.go | 18 |
2 files changed, 8 insertions, 17 deletions
diff --git a/libgo/go/internal/reflectlite/swapper.go b/libgo/go/internal/reflectlite/swapper.go index 4594fb5ee25..6330ab2d346 100644 --- a/libgo/go/internal/reflectlite/swapper.go +++ b/libgo/go/internal/reflectlite/swapper.go @@ -4,7 +4,10 @@ package reflectlite -import "unsafe" +import ( + "internal/unsafeheader" + "unsafe" +) // Swapper returns a function that swaps the elements in the provided // slice. @@ -58,7 +61,7 @@ func Swapper(slice interface{}) func(i, j int) { } } - s := (*sliceHeader)(v.ptr) + s := (*unsafeheader.Slice)(v.ptr) tmp := unsafe_New(typ) // swap scratch space return func(i, j int) { diff --git a/libgo/go/internal/reflectlite/value.go b/libgo/go/internal/reflectlite/value.go index 9a14d18ba2f..b78efaea4be 100644 --- a/libgo/go/internal/reflectlite/value.go +++ b/libgo/go/internal/reflectlite/value.go @@ -5,6 +5,7 @@ package reflectlite import ( + "internal/unsafeheader" "runtime" "unsafe" ) @@ -336,10 +337,10 @@ func (v Value) Len() int { return maplen(v.pointer()) case Slice: // Slice is bigger than a word; assume flagIndir. - return (*sliceHeader)(v.ptr).Len + return (*unsafeheader.Slice)(v.ptr).Len case String: // String is bigger than a word; assume flagIndir. - return (*stringHeader)(v.ptr).Len + return (*unsafeheader.String)(v.ptr).Len } panic(&ValueError{"reflect.Value.Len", v.kind()}) } @@ -380,19 +381,6 @@ func (v Value) Type() Type { return v.typ } -// stringHeader is a safe version of StringHeader used within this package. -type stringHeader struct { - Data unsafe.Pointer - Len int -} - -// sliceHeader is a safe version of SliceHeader used within this package. -type sliceHeader struct { - Data unsafe.Pointer - Len int - Cap int -} - /* * constructors */ |