diff options
author | Tim Watson <tim@rabbitmq.com> | 2014-03-18 20:25:11 +0000 |
---|---|---|
committer | Tim Watson <tim@rabbitmq.com> | 2014-03-18 20:25:11 +0000 |
commit | 87a1e06d6834e3740ac21034ce110b24ea693e9b (patch) | |
tree | 7142853c50b8176f762cbdf2d76addf48eba6a1f /src/rabbit_misc.erl | |
parent | ec5086953c6b6739255041b9d30d420257f2ceba (diff) | |
parent | 19767b76842b73006d6840950d572a777077eadf (diff) | |
download | rabbitmq-server-87a1e06d6834e3740ac21034ce110b24ea693e9b.tar.gz |
Merge default into bug24926
Diffstat (limited to 'src/rabbit_misc.erl')
-rw-r--r-- | src/rabbit_misc.erl | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index 2e87a8f6..86616632 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -209,7 +209,8 @@ [string()]) -> {'ok', {atom(), [{string(), string()}], [string()]}} | 'no_command'). --spec(all_module_attributes/1 :: (atom()) -> [{atom(), [term()]}]). +-spec(all_module_attributes/1 :: + (atom()) -> [{atom(), atom(), [term()]}]). -spec(build_acyclic_graph/3 :: (graph_vertex_fun(), graph_edge_fun(), [{atom(), [term()]}]) -> rabbit_types:ok_or_error2(digraph(), @@ -849,20 +850,20 @@ module_attributes(Module) -> end. all_module_attributes(Name) -> - Modules = + Targets = lists:usort( lists:append( - [Modules || {App, _, _} <- application:loaded_applications(), - {ok, Modules} <- [application:get_key(App, modules)]])), + [[{App, Module} || Module <- Modules] || + {App, _, _} <- application:loaded_applications(), + {ok, Modules} <- [application:get_key(App, modules)]])), lists:foldl( - fun (Module, Acc) -> + fun ({App, Module}, Acc) -> case lists:append([Atts || {N, Atts} <- module_attributes(Module), N =:= Name]) of [] -> Acc; - Atts -> [{Module, Atts} | Acc] + Atts -> [{App, Module, Atts} | Acc] end - end, [], Modules). - + end, [], Targets). build_acyclic_graph(VertexFun, EdgeFun, Graph) -> G = digraph:new([acyclic]), |