diff --git a/decode_value.go b/decode_value.go index a6db402..c44a674 100644 --- a/decode_value.go +++ b/decode_value.go @@ -128,7 +128,7 @@ 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() }