reflect: use int in StringHeader and SliceHeader on non-AVR platforms (#4156)

This commit is contained in:
Randy Reddig
2024-05-14 05:04:54 -07:00
committed by GitHub
parent c78dbcd3f2
commit fe27b674cd
5 changed files with 60 additions and 4 deletions
+13 -3
View File
@@ -1578,8 +1578,8 @@ type funcHeader struct {
type SliceHeader struct {
Data uintptr
Len uintptr
Cap uintptr
Len intw
Cap intw
}
// Slice header that matches the underlying structure. Used for when we switch
@@ -1592,7 +1592,7 @@ type sliceHeader struct {
type StringHeader struct {
Data uintptr
Len uintptr
Len intw
}
// Like sliceHeader, this type is used internally to make sure pointer and
@@ -1602,6 +1602,16 @@ type stringHeader struct {
len uintptr
}
// 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{})]byte = [unsafe.Sizeof(sliceHeader{})]byte{}
_ [unsafe.Sizeof("")]byte = [unsafe.Sizeof(StringHeader{})]byte{}
_ [unsafe.Sizeof("")]byte = [unsafe.Sizeof(stringHeader{})]byte{}
)
type ValueError struct {
Method string
Kind Kind