Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/vendor/src/gopkg.in/yaml.v2/decode.go b/vendor/src/gopkg.in/yaml.v2/decode.go
- index e85eb2e..01ec24f 100644
- --- a/vendor/src/gopkg.in/yaml.v2/decode.go
- +++ b/vendor/src/gopkg.in/yaml.v2/decode.go
- @@ -559,9 +559,17 @@ func (d *decoder) mapping(n *node, out reflect.Value) (good bool) {
- if kkind == reflect.Map || kkind == reflect.Slice {
- failf("invalid map key: %#v", k.Interface())
- }
- - e := reflect.New(et).Elem()
- - if d.unmarshal(n.children[i+1], e) {
- - out.SetMapIndex(k, e)
- + e := out.MapIndex(k)
- + if e.IsValid() {
- + // Reuse map entry.
- + e = e.Elem()
- + d.unmarshal(n.children[i+1], e)
- + } else {
- + // Add new map entry.
- + e := reflect.New(et).Elem()
- + if d.unmarshal(n.children[i+1], e) {
- + out.SetMapIndex(k, e)
- + }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement