diff options
author | Wim <wim@42.be> | 2021-06-16 21:00:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-16 21:00:49 +0200 |
commit | fb5a84212c491332504fcdd4b5f4a4b97705d2e3 (patch) | |
tree | be03e973d30d040a49a90c47f1e6b73ed8922539 /vendor/gopkg.in/yaml.v3/decode.go | |
parent | dedc1c45a113d8db373d9e4638f54a0f9d29624f (diff) | |
download | matterbridge-msglm-fb5a84212c491332504fcdd4b5f4a4b97705d2e3.tar.gz matterbridge-msglm-fb5a84212c491332504fcdd4b5f4a4b97705d2e3.tar.bz2 matterbridge-msglm-fb5a84212c491332504fcdd4b5f4a4b97705d2e3.zip |
Update dependencies (#1521)
Diffstat (limited to 'vendor/gopkg.in/yaml.v3/decode.go')
-rw-r--r-- | vendor/gopkg.in/yaml.v3/decode.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vendor/gopkg.in/yaml.v3/decode.go b/vendor/gopkg.in/yaml.v3/decode.go index 21c0dacf..df36e3a3 100644 --- a/vendor/gopkg.in/yaml.v3/decode.go +++ b/vendor/gopkg.in/yaml.v3/decode.go @@ -399,7 +399,7 @@ func (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good // // If n holds a null value, prepare returns before doing anything. func (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) { - if n.ShortTag() == nullTag || n.Kind == 0 && n.IsZero() { + if n.ShortTag() == nullTag { return out, false, false } again := true @@ -808,8 +808,10 @@ func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) { } } + mapIsNew := false if out.IsNil() { out.Set(reflect.MakeMap(outt)) + mapIsNew = true } for i := 0; i < l; i += 2 { if isMerge(n.Content[i]) { @@ -826,7 +828,7 @@ func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) { failf("invalid map key: %#v", k.Interface()) } e := reflect.New(et).Elem() - if d.unmarshal(n.Content[i+1], e) { + if d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) { out.SetMapIndex(k, e) } } |