summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2013-03-07 10:01:39 +0000
committerEmile Joubert <emile@rabbitmq.com>2013-03-07 10:01:39 +0000
commitbfa7c13c13fda70322617530a19465ea6e977bbc (patch)
tree63e009ea794d6d6ddfaaca95b4dc90d4ced66667 /src
parent7ed42b79ac27358b9f2bdc00aa31f5ce0799853a (diff)
downloadrabbitmq-server-git-bfa7c13c13fda70322617530a19465ea6e977bbc.tar.gz
Optimisation
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_exchange.erl15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl
index 0a3849ef55..0e7872f61e 100644
--- a/src/rabbit_exchange.erl
+++ b/src/rabbit_exchange.erl
@@ -314,11 +314,16 @@ info_all(VHostPath, Items) -> map(VHostPath, fun (X) -> info(X, Items) end).
route(#exchange{name = #resource{name = RName, virtual_host = VHost} = XName} = X,
#delivery{message = #basic_message{routing_keys = RKs}} = Delivery) ->
- case registry_lookup(exchange_decorator_route) == [] andalso
- RName == <<"">> of
- true -> [rabbit_misc:r(VHost, queue, RK) || RK <- lists:usort(RKs)];
- false -> QNames = route1(Delivery, {[X], XName, []}),
- lists:usort(decorate_route(X, Delivery, QNames))
+ case {registry_lookup(exchange_decorator_route) == [], RName == <<"">>} of
+ {true, true} ->
+ [rabbit_misc:r(VHost, queue, RK) || RK <- lists:usort(RKs)];
+ {NoDecor, _} ->
+ QNames = route1(Delivery, {[X], XName, []}),
+ lists:usort(
+ case NoDecor of
+ true -> QNames;
+ false -> decorate_route(X, Delivery, QNames)
+ end)
end.
decorate_route(X, Delivery, QNames) ->