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 | f53fb385bfdaa1b986e86d17594b517300ded7c3 (patch) | |
| tree | a17deb633baec5e754d984a20aa6c6371d968a5c | |
| parent | d07f86c9ba0eacab62833877a568195e1f3831c1 (diff) | |
| download | rabbitmq-server-git-f53fb385bfdaa1b986e86d17594b517300ded7c3.tar.gz | |
Simplify binlist_split from /4 to /3.
| -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 71c13af26a..92a960f7a4 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 |
