diff options
| author | Rob Pike <r@golang.org> | 2009-07-16 21:24:30 -0700 |
|---|---|---|
| committer | Rob Pike <r@golang.org> | 2009-07-16 21:24:30 -0700 |
| commit | 7eaf730218c2d51fbf24fdb6638706cc2751a957 (patch) | |
| tree | 7a42ccf4fc5b82019d7c88878e1b08c208435dde /src/pkg/json/struct.go | |
| parent | 5ed6000d3ca0a62b3b8a2aae6ec6b97f162b507b (diff) | |
| download | golang-7eaf730218c2d51fbf24fdb6638706cc2751a957.tar.gz | |
use FieldByName where possible.
R=rsc
DELTA=20 (0 added, 12 deleted, 8 changed)
OCL=31758
CL=31758
Diffstat (limited to 'src/pkg/json/struct.go')
| -rw-r--r-- | src/pkg/json/struct.go | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/pkg/json/struct.go b/src/pkg/json/struct.go index 81887b1c8..ee23d1e9d 100644 --- a/src/pkg/json/struct.go +++ b/src/pkg/json/struct.go @@ -184,10 +184,8 @@ func (b *_StructBuilder) Key(k string) Builder { } if v, ok := reflect.Indirect(b.val).(*reflect.StructValue); ok { t := v.Type().(*reflect.StructType); - for i := 0; i < t.NumField(); i++ { - if t.Field(i).Name == k { - return &_StructBuilder{ v.Field(i) } - } + if field, ok := t.FieldByName(k); ok { + return &_StructBuilder{ v.Field(field.Index) } } // Again, case-insensitive. for i := 0; i < t.NumField(); i++ { |
