From d726120e60e3db332ed26c2106c65271f4d8fba4 Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Mon, 26 Sep 2011 14:02:31 +0200 Subject: Bug in matching algorithm fixed Signed-off-by: Martin Sustrik --- src/mtrie.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mtrie.cpp b/src/mtrie.cpp index edff336..01c4fc5 100644 --- a/src/mtrie.cpp +++ b/src/mtrie.cpp @@ -210,13 +210,17 @@ void zmq::mtrie_t::match (unsigned char *data_, size_t size_, void (*func_) (pipe_t *pipe_, void *arg_), void *arg_) { mtrie_t *current = this; - while (size_) { + while (true) { // Signal the pipes attached to this node. for (pipes_t::iterator it = current->pipes.begin (); it != current->pipes.end (); ++it) func_ (*it, arg_); + // If we are at the end of the message, there's nothing more to match. + if (!size_) + break; + // If there are no subnodes in the trie, return. if (current->count == 0) break; -- cgit v1.2.3