>From bb66f3cc3bc2a76d10f16e1206f35480eb250a07 Mon Sep 17 00:00:00 2001 From: Martin Sustrik <[email protected]> Date: Sat, 5 Nov 2011 16:05:18 +0100 Subject: [PATCH] Bug in trie fixed (issue 277)
When there were both '0' and '255' subnodes in (mtrie) the removal of the node resulted in an infinite loop. Fixed. Signed-off-by: Martin Sustrik <[email protected]> --- src/mtrie.cpp | 2 +- src/trie.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mtrie.cpp b/src/mtrie.cpp index 1c96c98..65b4fe8 100644 --- a/src/mtrie.cpp +++ b/src/mtrie.cpp @@ -171,7 +171,7 @@ void zmq::mtrie_t::rm_helper (pipe_t *pipe_, unsigned char **buff_, } // If there are multiple subnodes. - for (unsigned char c = 0; c != count; c++) { + for (unsigned short c = 0; c != count; c++) { (*buff_) [buffsize_] = min + c; if (next.table [c]) next.table [c]->rm_helper (pipe_, buff_, buffsize_ + 1, diff --git a/src/trie.cpp b/src/trie.cpp index 9718c77..d53a135 100644 --- a/src/trie.cpp +++ b/src/trie.cpp @@ -219,7 +219,7 @@ void zmq::trie_t::apply_helper ( } // If there are multiple subnodes. - for (unsigned char c = 0; c != count; c++) { + for (unsigned short c = 0; c != count; c++) { (*buff_) [buffsize_] = min + c; if (next.table [c]) next.table [c]->apply_helper (buff_, buffsize_ + 1, maxbuffsize_, -- 1.7.0.4
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
