diff options
| author | Emile Joubert <emile@rabbitmq.com> | 2013-03-07 10:01:39 +0000 |
|---|---|---|
| committer | Emile Joubert <emile@rabbitmq.com> | 2013-03-07 10:01:39 +0000 |
| commit | bfa7c13c13fda70322617530a19465ea6e977bbc (patch) | |
| tree | 63e009ea794d6d6ddfaaca95b4dc90d4ced66667 /src | |
| parent | 7ed42b79ac27358b9f2bdc00aa31f5ce0799853a (diff) | |
| download | rabbitmq-server-git-bfa7c13c13fda70322617530a19465ea6e977bbc.tar.gz | |
Optimisation
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_exchange.erl | 15 |
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) -> |
