summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2013-04-19 06:31:51 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2013-04-19 06:31:51 +0100
commit85b268ec1dbae4a84f1efa0f185463d7ea8d1066 (patch)
tree988154d0cb9caa194603757a00143b386afbca99
parent497e8f85bb5d61eeb68dece2b0496b8cc4b6f72a (diff)
downloadrabbitmq-server-git-85b268ec1dbae4a84f1efa0f185463d7ea8d1066.tar.gz
lists:keyfind/3 is not in R12B-3.
-rw-r--r--src/rabbit_vm.erl13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/rabbit_vm.erl b/src/rabbit_vm.erl
index a772d9c4fc..afd8921bb1 100644
--- a/src/rabbit_vm.erl
+++ b/src/rabbit_vm.erl
@@ -127,8 +127,8 @@ aggregate_memory(Names, Sums) ->
lists:sum([extract_memory(Name, Sums) || Name <- Names]).
extract_memory(Name, Sums) ->
- {_, Accs} = lists:keyfind(Name, 1, Sums),
- {memory, V} = lists:keyfind(memory, 1, Accs),
+ {value, {_, Accs}} = lists:keysearch(Name, 1, Sums),
+ {value, {memory, V}} = lists:keysearch(memory, 1, Accs),
V.
%% NB: this code is non-rabbit specific
@@ -165,11 +165,12 @@ sum_processes(Names, Fun, Acc0) ->
orddict:to_list(OtherAcc)}.
find_ancestor(Extra, D, Names) ->
+ Ancestors = case lists:keysearch('$ancestors', 1, D) of
+ {value, {_, Ancs}} -> Ancs;
+ false -> []
+ end,
case lists:splitwith(fun (A) -> not lists:member(A, Names) end,
- Extra ++ case lists:keyfind('$ancestors', 1, D) of
- false -> [];
- {_, Ancestors} -> Ancestors
- end) of
+ Extra ++ Ancestors) of
{_, []} -> undefined;
{_, [Name | _]} -> Name
end.