From: Robert Griesemer Date: Fri, 31 Jul 2009 02:29:31 +0000 (-0700) Subject: bug fix X-Git-Tag: weekly.2009-11-06~1006 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c670dc450b82601305bd60f66ac7ee8320a50245;p=gostls13.git bug fix R=rsc OCL=32563 CL=32563 --- diff --git a/src/pkg/template/template.go b/src/pkg/template/template.go index dbbadeedfd..60021a423e 100644 --- a/src/pkg/template/template.go +++ b/src/pkg/template/template.go @@ -569,10 +569,11 @@ func (st *state) findVar(s string) reflect.Value { if s == "@" { return st.data } - data := reflect.Indirect(st.data); + data := st.data; elems := strings.Split(s, ".", 0); for i := 0; i < len(elems); i++ { // Look up field; data must be a struct. + data = reflect.Indirect(data); typ, ok := data.Type().(*reflect.StructType); if !ok { return nil @@ -581,7 +582,7 @@ func (st *state) findVar(s string) reflect.Value { if !ok { return nil } - data = reflect.Indirect(data.(*reflect.StructValue).Field(field.Index)); + data = data.(*reflect.StructValue).Field(field.Index); } return data }