summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVlad Alexandru Ionescu <vlad@rabbitmq.com>2011-01-27 19:18:49 +0000
committerVlad Alexandru Ionescu <vlad@rabbitmq.com>2011-01-27 19:18:49 +0000
commit8614e2ba638d2c3b8fa6c2e3d647458c40b12190 (patch)
tree27205d590384ab54fae11367db3dc530a7cb718a /src
parent10aabbbb1c923b3d570f387170ab36b5f1b46751 (diff)
downloadrabbitmq-server-git-8614e2ba638d2c3b8fa6c2e3d647458c40b12190.tar.gz
cosmetic
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_exchange_type_topic.erl16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/rabbit_exchange_type_topic.erl b/src/rabbit_exchange_type_topic.erl
index fdababe779..0beaa71443 100644
--- a/src/rabbit_exchange_type_topic.erl
+++ b/src/rabbit_exchange_type_topic.erl
@@ -83,12 +83,14 @@ trie_match(X, Words) ->
trie_match(X, root, Words, []).
trie_match(X, Node, [], ResAcc) ->
- ResAcc1 = trie_bindings(X, Node) ++ ResAcc,
- trie_match_part(X, Node, "#", fun trie_match_skip_any/4, [], ResAcc1);
+ trie_match_part(X, Node, "#", fun trie_match_skip_any/4, [],
+ trie_bindings(X, Node) ++ ResAcc);
trie_match(X, Node, [W | RestW] = Words, ResAcc) ->
- ResAcc1 = trie_match_part(X, Node, W, fun trie_match/4, RestW, ResAcc),
- ResAcc2 = trie_match_part(X, Node, "*", fun trie_match/4, RestW, ResAcc1),
- trie_match_part(X, Node, "#", fun trie_match_skip_any/4, Words, ResAcc2).
+ lists:foldl(fun ({WArg, MatchFun, RestWArg}, Acc) ->
+ trie_match_part(X, Node, WArg, MatchFun, RestWArg, Acc)
+ end, ResAcc, [{W, fun trie_match/4, RestW},
+ {"*", fun trie_match/4, RestW},
+ {"#", fun trie_match_skip_any/4, Words}]).
trie_match_part(X, Node, Search, MatchFun, RestW, ResAcc) ->
case trie_child(X, Node, Search) of
@@ -99,8 +101,8 @@ trie_match_part(X, Node, Search, MatchFun, RestW, ResAcc) ->
trie_match_skip_any(X, Node, [], ResAcc) ->
trie_match(X, Node, [], ResAcc);
trie_match_skip_any(X, Node, [_ | RestW] = Words, ResAcc) ->
- ResAcc1 = trie_match(X, Node, Words, ResAcc),
- trie_match_skip_any(X, Node, RestW, ResAcc1).
+ trie_match_skip_any(X, Node, RestW,
+ trie_match(X, Node, Words, ResAcc)).
follow_down_create(X, Words) ->
case follow_down_last_node(X, Words) of