|
|
@@ -583,14 +583,16 @@ func (f *decFnInfo) kInterfaceNaked() (rvn reflect.Value) {
|
|
|
if d.mtid == 0 || d.mtid == mapIntfIntfTypId {
|
|
|
l := len(n.ms)
|
|
|
n.ms = append(n.ms, nil)
|
|
|
- d.decode(&n.ms[l])
|
|
|
- rvn = reflect.ValueOf(&n.ms[l]).Elem()
|
|
|
+ var v2 interface{} = &n.ms[l]
|
|
|
+ d.decode(v2)
|
|
|
+ rvn = reflect.ValueOf(v2).Elem()
|
|
|
n.ms = n.ms[:l]
|
|
|
} else if d.mtid == mapStrIntfTypId { // for json performance
|
|
|
l := len(n.ns)
|
|
|
n.ns = append(n.ns, nil)
|
|
|
- d.decode(&n.ns[l])
|
|
|
- rvn = reflect.ValueOf(&n.ns[l]).Elem()
|
|
|
+ var v2 interface{} = &n.ns[l]
|
|
|
+ d.decode(v2)
|
|
|
+ rvn = reflect.ValueOf(v2).Elem()
|
|
|
n.ns = n.ns[:l]
|
|
|
} else {
|
|
|
rvn = reflect.New(d.h.MapType).Elem()
|
|
|
@@ -617,8 +619,8 @@ func (f *decFnInfo) kInterfaceNaked() (rvn reflect.Value) {
|
|
|
n.is = append(n.is, nil)
|
|
|
v2 := &n.is[l]
|
|
|
d.decode(v2)
|
|
|
- n.is = n.is[:l]
|
|
|
v = *v2
|
|
|
+ n.is = n.is[:l]
|
|
|
}
|
|
|
bfn := d.h.getExtForTag(tag)
|
|
|
if bfn == nil {
|