summaryrefslogtreecommitdiff
path: root/src/rabbit_misc.erl
diff options
context:
space:
mode:
authorTim Watson <tim@rabbitmq.com>2014-03-18 20:25:11 +0000
committerTim Watson <tim@rabbitmq.com>2014-03-18 20:25:11 +0000
commit87a1e06d6834e3740ac21034ce110b24ea693e9b (patch)
tree7142853c50b8176f762cbdf2d76addf48eba6a1f /src/rabbit_misc.erl
parentec5086953c6b6739255041b9d30d420257f2ceba (diff)
parent19767b76842b73006d6840950d572a777077eadf (diff)
downloadrabbitmq-server-87a1e06d6834e3740ac21034ce110b24ea693e9b.tar.gz
Merge default into bug24926
Diffstat (limited to 'src/rabbit_misc.erl')
-rw-r--r--src/rabbit_misc.erl17
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]),