diff options
| -rw-r--r-- | src/mtrie.cpp | 10 | 
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_);  }  | 
