@@ -1073,12 +1073,26 @@ func (cmd *XMessageSliceCmd) String() string {
1073
1073
}
1074
1074
1075
1075
func (cmd * XMessageSliceCmd ) readReply (rd * proto.Reader ) error {
1076
- v , err := rd .ReadArrayReply (xMessageSliceParser )
1076
+ var err error
1077
+ cmd .val , err = readXMessageSlice (rd )
1078
+ return err
1079
+ }
1080
+
1081
+ func readXMessageSlice (rd * proto.Reader ) ([]XMessage , error ) {
1082
+ n , err := rd .ReadArrayLen ()
1077
1083
if err != nil {
1078
- return err
1084
+ return nil , err
1079
1085
}
1080
- cmd .val = v .([]XMessage )
1081
- return nil
1086
+
1087
+ msgs := make ([]XMessage , n )
1088
+ for i := 0 ; i < n ; i ++ {
1089
+ var err error
1090
+ msgs [i ], err = readXMessage (rd )
1091
+ if err != nil {
1092
+ return nil , err
1093
+ }
1094
+ }
1095
+ return msgs , nil
1082
1096
}
1083
1097
1084
1098
func readXMessage (rd * proto.Reader ) (XMessage , error ) {
@@ -1112,19 +1126,6 @@ func readXMessage(rd *proto.Reader) (XMessage, error) {
1112
1126
}, nil
1113
1127
}
1114
1128
1115
- // xMessageSliceParser implements proto.MultiBulkParse.
1116
- func xMessageSliceParser (rd * proto.Reader , n int64 ) (interface {}, error ) {
1117
- msgs := make ([]XMessage , n )
1118
- for i := int64 (0 ); i < n ; i ++ {
1119
- var err error
1120
- msgs [i ], err = readXMessage (rd )
1121
- if err != nil {
1122
- return nil , err
1123
- }
1124
- }
1125
- return msgs , nil
1126
- }
1127
-
1128
1129
// stringInterfaceMapParser implements proto.MultiBulkParse.
1129
1130
func stringInterfaceMapParser (rd * proto.Reader , n int64 ) (interface {}, error ) {
1130
1131
m := make (map [string ]interface {}, n / 2 )
@@ -1195,14 +1196,14 @@ func (cmd *XStreamSliceCmd) readReply(rd *proto.Reader) error {
1195
1196
return nil , err
1196
1197
}
1197
1198
1198
- v , err := rd . ReadArrayReply ( xMessageSliceParser )
1199
+ msgs , err := readXMessageSlice ( rd )
1199
1200
if err != nil {
1200
1201
return nil , err
1201
1202
}
1202
1203
1203
1204
cmd .val [i ] = XStream {
1204
1205
Stream : stream ,
1205
- Messages : v .([] XMessage ) ,
1206
+ Messages : msgs ,
1206
1207
}
1207
1208
return nil , nil
1208
1209
})
0 commit comments