We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent c4f87ed commit 17f888cCopy full SHA for 17f888c
src/reflect/type.go
@@ -2775,20 +2775,20 @@ func runtimeStructField(field StructField) structField {
2775
// containing pointer data. Anything after this offset is scalar data.
2776
// keep in sync with ../cmd/compile/internal/gc/reflect.go
2777
func typeptrdata(t *rtype) uintptr {
2778
- if !t.pointers() {
2779
- return 0
2780
- }
2781
switch t.Kind() {
2782
case Struct:
2783
st := (*structType)(unsafe.Pointer(t))
2784
// find the last field that has pointers.
2785
- field := 0
+ field := -1
2786
for i := range st.fields {
2787
ft := st.fields[i].typ
2788
if ft.pointers() {
2789
field = i
2790
}
2791
+ if field == -1 {
+ return 0
+ }
2792
f := st.fields[field]
2793
return f.offset() + f.typ.ptrdata
2794
0 commit comments