diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-05-04 01:04:51 +0200 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-05-04 01:06:49 +0200 |
| commit | 31372f089f2fa8aac6f4c0dca9c30d0c80a7e4df (patch) | |
| tree | bfa45d80fd534cb4edb98bc1fcedf1fa1e5fdb3a /src/pkg/xml/read.go | |
| parent | 07e260e5c9d575c3268bf953198f572b94bde32d (diff) | |
| download | golang-31372f089f2fa8aac6f4c0dca9c30d0c80a7e4df.tar.gz | |
Imported Upstream version 57
Diffstat (limited to 'src/pkg/xml/read.go')
| -rw-r--r-- | src/pkg/xml/read.go | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/pkg/xml/read.go b/src/pkg/xml/read.go index 554b2a61b..e2b349c3f 100644 --- a/src/pkg/xml/read.go +++ b/src/pkg/xml/read.go @@ -220,13 +220,10 @@ func (p *Parser) unmarshal(val reflect.Value, start *StartElement) os.Error { } if pv := val; pv.Kind() == reflect.Ptr { - if pv.Pointer() == 0 { - zv := reflect.Zero(pv.Type().Elem()) - pv.Set(zv.Addr()) - val = zv - } else { - val = pv.Elem() + if pv.IsNil() { + pv.Set(reflect.New(pv.Type().Elem())) } + val = pv.Elem() } var ( |
