mirror of https://github.com/golang/go.git
cmd/compile/internal: loop opt
Change-Id: I19faa360d72d19943c66c50167e2b8a17f046b59
This commit is contained in:
parent
609d82b289
commit
94fea3d572
|
|
@ -619,9 +619,11 @@ func PtrDataSize(t *Type) int64 {
|
||||||
case TSTRUCT:
|
case TSTRUCT:
|
||||||
// Find the last field that has pointers.
|
// Find the last field that has pointers.
|
||||||
var lastPtrField *Field
|
var lastPtrField *Field
|
||||||
for _, t1 := range t.Fields().Slice() {
|
fs := t.Fields().Slice()
|
||||||
if t1.Type.HasPointers() {
|
for i := len(fs) - 1; i >= 0; i-- {
|
||||||
lastPtrField = t1
|
if fs[i].Type.HasPointers() {
|
||||||
|
lastPtrField = fs[i]
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return lastPtrField.Offset + PtrDataSize(lastPtrField.Type)
|
return lastPtrField.Offset + PtrDataSize(lastPtrField.Type)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue