88package msgpack
99
1010func (d * Decoder ) decodeFixMap () (map [string ]interface {}, error ) {
11- var len = d .nextByte ^ msgPackFlagFixMap
11+ var len = int ( d .nextByte ^ msgPackFlagFixMap )
1212
1313 if len < 4 {
1414 return d .mapDecoderFuncsByLen [len ]()
1515 }
1616
17- return d .decodeMapAny (int ( len ) )
17+ return d .decodeMapAny (len )
1818}
1919
2020func (d * Decoder ) decodeMap16 () (map [string ]interface {}, error ) {
2121 var len , err = d .readLen16 ()
2222
2323 if err != nil {
24- return nil , err
24+ return map [ string ] interface {}{} , err
2525 }
2626
2727 return d .decodeMapAny (len )
@@ -31,50 +31,38 @@ func (d *Decoder) decodeMap32() (map[string]interface{}, error) {
3131 var len , err = d .readLen32 ()
3232
3333 if err != nil {
34- return nil , err
34+ return map [ string ] interface {}{} , err
3535 }
3636
3737 return d .decodeMapAny (len )
3838}
3939
4040func (d * Decoder ) decodeFixSlice () ([]interface {}, error ) {
41- return d .decodeSlice (int (d .nextByte ^ msgPackFlagFixArray ))
41+ var len = int (d .nextByte ^ msgPackFlagFixArray )
42+
43+ if len < 4 {
44+ return d .sliceDecoderFuncsByLen [len ]()
45+ }
46+
47+ return d .decodeSliceAny (len )
4248}
4349
4450func (d * Decoder ) decodeSlice16 () ([]interface {}, error ) {
4551 var len , err = d .readLen16 ()
4652
4753 if err != nil {
48- return nil , err
54+ return [] interface {}{} , err
4955 }
5056
51- return d .decodeSlice (len )
57+ return d .decodeSliceAny (len )
5258}
5359
5460func (d * Decoder ) decodeSlice32 () ([]interface {}, error ) {
5561 var len , err = d .readLen32 ()
5662
5763 if err != nil {
58- return nil , err
59- }
60-
61- return d .decodeSlice (len )
62- }
63-
64- func (d * Decoder ) decodeSlice (len int ) ([]interface {}, error ) {
65- var (
66- err error
67- s = make ([]interface {}, len )
68- i = 0
69- )
70-
71- for ; i < len ; i ++ {
72- var value interface {}
73- if err = d .handleNext (& value ); err != nil {
74- return nil , err
75- }
76- s [i ] = value
64+ return []interface {}{}, err
7765 }
7866
79- return s , nil
67+ return d . decodeSliceAny ( len )
8068}
0 commit comments