summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2014-01-06 16:21:16 +0000
committerSimon MacMullen <simon@rabbitmq.com>2014-01-06 16:21:16 +0000
commit3ccc2f8eccf1add19bcc2de4917bbb879d4e1c28 (patch)
treea17deb633baec5e754d984a20aa6c6371d968a5c
parentdc5b87dfa71e9f2cace9c2dd1c120d51f35518d2 (diff)
downloadrabbitmq-server-bug25939.tar.gz
Simplify binlist_split from /4 to /3.bug25939
-rw-r--r--src/rabbit_reader.erl12
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