mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-18 11:33:59 +00:00
internal/reflectlite, reflect: move StringHeader and SliceHeader back to package reflect
This commit is contained in:
@@ -1686,12 +1686,6 @@ type funcHeader struct {
|
|||||||
Code unsafe.Pointer
|
Code unsafe.Pointer
|
||||||
}
|
}
|
||||||
|
|
||||||
type SliceHeader struct {
|
|
||||||
Data uintptr
|
|
||||||
Len intw
|
|
||||||
Cap intw
|
|
||||||
}
|
|
||||||
|
|
||||||
// Slice header that matches the underlying structure. Used for when we switch
|
// Slice header that matches the underlying structure. Used for when we switch
|
||||||
// to a precise GC, which needs to know exactly where pointers live.
|
// to a precise GC, which needs to know exactly where pointers live.
|
||||||
type sliceHeader struct {
|
type sliceHeader struct {
|
||||||
@@ -1700,11 +1694,6 @@ type sliceHeader struct {
|
|||||||
cap uintptr
|
cap uintptr
|
||||||
}
|
}
|
||||||
|
|
||||||
type StringHeader struct {
|
|
||||||
Data uintptr
|
|
||||||
Len intw
|
|
||||||
}
|
|
||||||
|
|
||||||
// Like sliceHeader, this type is used internally to make sure pointer and
|
// Like sliceHeader, this type is used internally to make sure pointer and
|
||||||
// non-pointer fields match those of actual strings.
|
// non-pointer fields match those of actual strings.
|
||||||
type stringHeader struct {
|
type stringHeader struct {
|
||||||
@@ -1716,9 +1705,7 @@ type stringHeader struct {
|
|||||||
// See https://github.com/tinygo-org/tinygo/pull/4156
|
// See https://github.com/tinygo-org/tinygo/pull/4156
|
||||||
// and https://github.com/tinygo-org/tinygo/issues/1284.
|
// and https://github.com/tinygo-org/tinygo/issues/1284.
|
||||||
var (
|
var (
|
||||||
_ [unsafe.Sizeof([]byte{})]byte = [unsafe.Sizeof(SliceHeader{})]byte{}
|
|
||||||
_ [unsafe.Sizeof([]byte{})]byte = [unsafe.Sizeof(sliceHeader{})]byte{}
|
_ [unsafe.Sizeof([]byte{})]byte = [unsafe.Sizeof(sliceHeader{})]byte{}
|
||||||
_ [unsafe.Sizeof("")]byte = [unsafe.Sizeof(StringHeader{})]byte{}
|
|
||||||
_ [unsafe.Sizeof("")]byte = [unsafe.Sizeof(stringHeader{})]byte{}
|
_ [unsafe.Sizeof("")]byte = [unsafe.Sizeof(stringHeader{})]byte{}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//go:build !avr
|
//go:build !avr
|
||||||
|
|
||||||
package reflectlite
|
package reflect
|
||||||
|
|
||||||
// intw is an integer type, used in places where an int is typically required,
|
// intw is an integer type, used in places where an int is typically required,
|
||||||
// except architectures where the size of an int != word size.
|
// except architectures where the size of an int != word size.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
//go:build avr
|
//go:build avr
|
||||||
|
|
||||||
package reflectlite
|
package reflect
|
||||||
|
|
||||||
// intw is an integer type, used in places where an int is typically required,
|
// intw is an integer type, used in places where an int is typically required,
|
||||||
// except architectures where the size of an int != word size.
|
// except architectures where the size of an int != word size.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
//go:build !avr
|
//go:build !avr
|
||||||
|
|
||||||
package reflectlite_test
|
package reflect_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"reflect"
|
"reflect"
|
||||||
@@ -226,3 +226,24 @@ func (v Value) Recv() (x Value, ok bool) {
|
|||||||
func NewAt(typ Type, p unsafe.Pointer) Value {
|
func NewAt(typ Type, p unsafe.Pointer) Value {
|
||||||
panic("unimplemented: reflect.New()")
|
panic("unimplemented: reflect.New()")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use unsafe.Slice or unsafe.SliceData instead.
|
||||||
|
type SliceHeader struct {
|
||||||
|
Data uintptr
|
||||||
|
Len intw
|
||||||
|
Cap intw
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use unsafe.String or unsafe.StringData instead.
|
||||||
|
type StringHeader struct {
|
||||||
|
Data uintptr
|
||||||
|
Len intw
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify SliceHeader and StringHeader sizes.
|
||||||
|
// See https://github.com/tinygo-org/tinygo/pull/4156
|
||||||
|
// and https://github.com/tinygo-org/tinygo/issues/1284.
|
||||||
|
var (
|
||||||
|
_ [unsafe.Sizeof([]byte{})]byte = [unsafe.Sizeof(SliceHeader{})]byte{}
|
||||||
|
_ [unsafe.Sizeof("")]byte = [unsafe.Sizeof(StringHeader{})]byte{}
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user