diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2014-01-06 16:21:16 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2014-01-06 16:21:16 +0000 |
commit | 3ccc2f8eccf1add19bcc2de4917bbb879d4e1c28 (patch) | |
tree | a17deb633baec5e754d984a20aa6c6371d968a5c | |
parent | dc5b87dfa71e9f2cace9c2dd1c120d51f35518d2 (diff) | |
download | rabbitmq-server-bug25939.tar.gz |
Simplify binlist_split from /4 to /3.bug25939
-rw-r--r-- | src/rabbit_reader.erl | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index 71c13af2..92a960f7 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -290,19 +290,19 @@ recvloop(Deb, State = #v1{buf = [B]}) -> {Rest, State1} = handle_input(State#v1.callback, B, State), recvloop(Deb, State1#v1{buf = [Rest], buf_len = size(Rest)}); recvloop(Deb, State = #v1{recv_len = RecvLen, buf_len = BufLen, buf = Buf}) -> - {DataLRev, RestLRev} = binlist_split(RecvLen, BufLen, Buf, []), + {DataLRev, RestLRev} = binlist_split(BufLen - RecvLen, Buf, []), Data = list_to_binary(lists:reverse(DataLRev)), {<<>>, State1} = handle_input(State#v1.callback, Data, State), recvloop(Deb, State1#v1{buf = lists:reverse(RestLRev), buf_len = BufLen - RecvLen}). -binlist_split(N, N, L, Acc) -> +binlist_split(0, L, Acc) -> {L, Acc}; -binlist_split(N, Len, L, [Acc0|Acc]) when Len < N -> - {H, T} = split_binary(Acc0, N - Len), +binlist_split(Len, L, [Acc0|Acc]) when Len < 0 -> + {H, T} = split_binary(Acc0, -Len), {[H|L], [T|Acc]}; -binlist_split(N, Len, [H|T], Acc) -> - binlist_split(N, Len - size(H), T, [H|Acc]). +binlist_split(Len, [H|T], Acc) -> + binlist_split(Len - size(H), T, [H|Acc]). mainloop(Deb, State = #v1{sock = Sock, buf = Buf, buf_len = BufLen}) -> case rabbit_net:recv(Sock) of |