mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile/internal: loop opt
Change-Id: I5fe767237b8046934e9b0f33bd3dafabdb727dd6
GitHub-Last-Rev: 94fea3d572
GitHub-Pull-Request: golang/go#44384
Reviewed-on: https://go-review.googlesource.com/c/go/+/293809
Reviewed-by: Robert Griesemer <gri@golang.org>
Trust: Robert Griesemer <gri@golang.org>
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
1391d4142c
commit
094048b938
1 changed files with 5 additions and 3 deletions
|
|
@ -624,9 +624,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…
Add table
Add a link
Reference in a new issue