summaryrefslogtreecommitdiff
path: root/vendor/github.com/vmihailenco/msgpack/v5/decode_value.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/vmihailenco/msgpack/v5/decode_value.go')
-rw-r--r--vendor/github.com/vmihailenco/msgpack/v5/decode_value.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/vendor/github.com/vmihailenco/msgpack/v5/decode_value.go b/vendor/github.com/vmihailenco/msgpack/v5/decode_value.go
index d2ff2aea5..c44a674e5 100644
--- a/vendor/github.com/vmihailenco/msgpack/v5/decode_value.go
+++ b/vendor/github.com/vmihailenco/msgpack/v5/decode_value.go
@@ -10,6 +10,7 @@ import (
var (
interfaceType = reflect.TypeOf((*interface{})(nil)).Elem()
stringType = reflect.TypeOf((*string)(nil)).Elem()
+ boolType = reflect.TypeOf((*bool)(nil)).Elem()
)
var valueDecoders []decoderFunc
@@ -127,12 +128,12 @@ func ptrValueDecoder(typ reflect.Type) decoderFunc {
return func(d *Decoder, v reflect.Value) error {
if d.hasNilCode() {
if !v.IsNil() {
- v.Set(reflect.Zero(v.Type()))
+ v.Set(d.newValue(typ).Elem())
}
return d.DecodeNil()
}
if v.IsNil() {
- v.Set(reflect.New(v.Type().Elem()))
+ v.Set(d.newValue(typ.Elem()))
}
return decoder(d, v.Elem())
}
@@ -154,7 +155,7 @@ func nilAwareDecoder(typ reflect.Type, fn decoderFunc) decoderFunc {
return d.decodeNilValue(v)
}
if v.IsNil() {
- v.Set(reflect.New(v.Type().Elem()))
+ v.Set(d.newValue(typ.Elem()))
}
return fn(d, v)
}