diff options
| author | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2011-01-27 19:18:49 +0000 |
|---|---|---|
| committer | Vlad Alexandru Ionescu <vlad@rabbitmq.com> | 2011-01-27 19:18:49 +0000 |
| commit | 8614e2ba638d2c3b8fa6c2e3d647458c40b12190 (patch) | |
| tree | 27205d590384ab54fae11367db3dc530a7cb718a /src | |
| parent | 10aabbbb1c923b3d570f387170ab36b5f1b46751 (diff) | |
| download | rabbitmq-server-git-8614e2ba638d2c3b8fa6c2e3d647458c40b12190.tar.gz | |
cosmetic
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_exchange_type_topic.erl | 16 |
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 |
