aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/type.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime/type.go')
-rw-r--r--src/runtime/type.go19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/runtime/type.go b/src/runtime/type.go
index b650d6d795..e8e7819ecf 100644
--- a/src/runtime/type.go
+++ b/src/runtime/type.go
@@ -414,13 +414,9 @@ type ptrtype struct {
}
type structfield struct {
- name name
- typ *_type
- offsetAnon uintptr
-}
-
-func (f *structfield) offset() uintptr {
- return f.offsetAnon >> 1
+ name name
+ typ *_type
+ offset uintptr
}
type structtype struct {
@@ -443,6 +439,10 @@ func (n name) isExported() bool {
return (*n.bytes)&(1<<0) != 0
}
+func (n name) isEmbedded() bool {
+ return (*n.bytes)&(1<<3) != 0
+}
+
func (n name) readvarint(off int) (int, int) {
v := 0
for i := 0; ; i++ {
@@ -703,7 +703,10 @@ func typesEqual(t, v *_type, seen map[_typePair]struct{}) bool {
if tf.name.tag() != vf.name.tag() {
return false
}
- if tf.offsetAnon != vf.offsetAnon {
+ if tf.offset != vf.offset {
+ return false
+ }
+ if tf.name.isEmbedded() != vf.name.isEmbedded() {
return false
}
}