Skip to content

Commit b5df0a8

Browse files
committed
Slight speedup in findCrlf
1 parent 3f93498 commit b5df0a8

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

Sources/SwiftRedis/RedisResp.swift

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class RedisResp {
123123
throw RedisRespError(code: .EOF)
124124
}
125125
}
126-
126+
127127
switch (buffer[offset..<offset+1]){
128128
case RedisResp.plus:
129129
(response, offset) = try parseSimpleString(&buffer, offset: offset+1)
@@ -237,12 +237,21 @@ class RedisResp {
237237
/* 5X faster than using find() above. range() is expensive */
238238
var i = from
239239
while true {
240-
while i < buffer.count {
241-
if buffer[i] == 13 && buffer[i+1] == 10{
242-
return i
240+
while i < buffer.count - 1 {
241+
// if buffer[i] == 13 && buffer[i+1] == 10{
242+
// return i
243+
// }
244+
if buffer[i+1] == 10{
245+
if buffer[i] == 13{
246+
return i
247+
} else {
248+
i+=2
249+
}
250+
} else {
251+
i+=1
243252
}
244-
i+=1
245253
}
254+
246255
let length = try socket?.read(into: &buffer)
247256
if length == 0 {
248257
throw RedisRespError(code: .EOF)

0 commit comments

Comments
 (0)