summaryrefslogtreecommitdiff
path: root/src/pkg/json/struct.go
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-07-16 21:24:30 -0700
committerRob Pike <r@golang.org>2009-07-16 21:24:30 -0700
commit7eaf730218c2d51fbf24fdb6638706cc2751a957 (patch)
tree7a42ccf4fc5b82019d7c88878e1b08c208435dde /src/pkg/json/struct.go
parent5ed6000d3ca0a62b3b8a2aae6ec6b97f162b507b (diff)
downloadgolang-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.go6
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++ {