diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_exchange.erl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index a3b32c7b98..9e98448d63 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -333,9 +333,9 @@ route1(_, _, {[], _, QNames}) -> QNames; route1(Delivery, Decorators, {[X = #exchange{type = Type} | WorkList], SeenXs, QNames}) -> - ExchangeDests = (type_to_module(Type)):route(X, Delivery), + ExchangeDests = (type_to_module(Type)):route(X, Delivery), + DecorateDests = process_decorators(X, Decorators, Delivery), AlternateDests = process_alternate(X, ExchangeDests), - DecorateDests = process_decorators(X, Decorators, Delivery), route1(Delivery, Decorators, lists:foldl(fun process_route/2, {WorkList, SeenXs, QNames}, AlternateDests ++ DecorateDests ++ ExchangeDests)). @@ -350,7 +350,7 @@ process_alternate(#exchange{name = XName, arguments = Args}, []) -> process_alternate(_X, _Results) -> []. -process_decorators(_, [], _) -> +process_decorators(_, [], _) -> %% optimisation []; process_decorators(X, Decorators, Delivery) -> lists:append([Decorator:route(X, Delivery) || Decorator <- Decorators]). |
