Skip to content

Commit fa8c86e

Browse files
committed
Small perf improvement when creating element value
1 parent c4c5e8f commit fa8c86e

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

decoder.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,7 @@ func (d *decoder) decodeMap(
461461

462462
mapType := result.Type()
463463
keyValue := reflect.New(mapType.Key()).Elem()
464+
elemType := mapType.Elem()
464465
for i := uint(0); i < size; i++ {
465466
var key []byte
466467
var err error
@@ -470,14 +471,14 @@ func (d *decoder) decodeMap(
470471
return 0, err
471472
}
472473

473-
value := reflect.New(result.Type().Elem())
474-
offset, err = d.decode(offset, value, depth)
474+
elemValue := reflect.New(elemType).Elem()
475+
offset, err = d.decode(offset, elemValue, depth)
475476
if err != nil {
476477
return 0, err
477478
}
478479

479480
keyValue.SetString(string(key))
480-
result.SetMapIndex(keyValue, value.Elem())
481+
result.SetMapIndex(keyValue, elemValue)
481482
}
482483
return offset, nil
483484
}

0 commit comments

Comments
 (0)