summaryrefslogtreecommitdiff
path: root/src/mtrie.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mtrie.cpp')
-rw-r--r--src/mtrie.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mtrie.cpp b/src/mtrie.cpp
index fafac2d..bb20df8 100644
--- a/src/mtrie.cpp
+++ b/src/mtrie.cpp
@@ -228,14 +228,14 @@ void zmq::mtrie_t::match_helper (unsigned char *data_, size_t size_,
// If there's one subnode (optimisation).
if (count == 1) {
- next.node->match (data_ + 1, size_ - 1, func_, arg_);
+ if (min == data_ [0])
+ next.node->match_helper (data_ + 1, size_ - 1, func_, arg_);
return;
}
// If there are multiple subnodes.
- for (unsigned char c = 0; c != count; c++) {
- if (next.table [c])
- next.table [c]->match (data_ + 1, size_ - 1, func_, arg_);
- }
+ if (next.table [data_ [0] - min])
+ next.table [data_ [0] - min]->match_helper (data_ + 1, size_ - 1,
+ func_, arg_);
}