We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent fa8c86e commit 4d055baCopy full SHA for 4d055ba
decoder.go
@@ -462,6 +462,8 @@ func (d *decoder) decodeMap(
462
mapType := result.Type()
463
keyValue := reflect.New(mapType.Key()).Elem()
464
elemType := mapType.Elem()
465
+ elemKind := elemType.Kind()
466
+ var elemValue reflect.Value
467
for i := uint(0); i < size; i++ {
468
var key []byte
469
var err error
@@ -471,7 +473,10 @@ func (d *decoder) decodeMap(
471
473
return 0, err
472
474
}
475
- elemValue := reflect.New(elemType).Elem()
476
+ if !elemValue.IsValid() || elemKind == reflect.Interface {
477
+ elemValue = reflect.New(elemType).Elem()
478
+ }
479
+
480
offset, err = d.decode(offset, elemValue, depth)
481
if err != nil {
482
0 commit comments