diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_reader.erl | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index 2027da0027..a22347a11b 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -290,10 +290,10 @@ recvloop(Deb, State = #v1{recv_len = RecvLen, buf_len = BufLen, buf = [B]}) -> State#v1{buf = [Rest], buf_len = BufLen - RecvLen})); recvloop(Deb, State = #v1{recv_len = RecvLen, buf_len = BufLen, buf = Buf}) -> - {Data, Rest} = binlist_split(RecvLen, BufLen, Buf, []), - recvloop(Deb, handle_input(State#v1.callback, - list_to_binary(lists:reverse(Data)), - State#v1{buf = lists:reverse(Rest), + {DataLRev, RestLRev} = binlist_split(RecvLen, BufLen, Buf, []), + Data = list_to_binary(lists:reverse(DataLRev)), + recvloop(Deb, handle_input(State#v1.callback, Data, + State#v1{buf = lists:reverse(RestLRev), buf_len = BufLen - RecvLen})). binlist_split(N, N, L, Acc) -> |
