From 3935258b826adc31815be4f91b2f6eb02bb3c8ed Mon Sep 17 00:00:00 2001 From: Martin Sustrik Date: Wed, 1 Jun 2011 11:54:33 +0200 Subject: Minor code beautification for mtrie_t Signed-off-by: Martin Sustrik --- src/mtrie.cpp | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) (limited to 'src/mtrie.cpp') diff --git a/src/mtrie.cpp b/src/mtrie.cpp index ac1fc31..91f6852 100644 --- a/src/mtrie.cpp +++ b/src/mtrie.cpp @@ -51,6 +51,12 @@ zmq::mtrie_t::~mtrie_t () } bool zmq::mtrie_t::add (unsigned char *prefix_, size_t size_, pipe_t *pipe_) +{ + return add_helper (prefix_, size_, pipe_); +} + +bool zmq::mtrie_t::add_helper (unsigned char *prefix_, size_t size_, + pipe_t *pipe_) { // We are at the node corresponding to the prefix. We are done. if (!size_) { @@ -114,14 +120,14 @@ bool zmq::mtrie_t::add (unsigned char *prefix_, size_t size_, pipe_t *pipe_) next.node = new (std::nothrow) mtrie_t; zmq_assert (next.node); } - return next.node->add (prefix_ + 1, size_ - 1, pipe_); + return next.node->add_helper (prefix_ + 1, size_ - 1, pipe_); } else { if (!next.table [c - min]) { next.table [c - min] = new (std::nothrow) mtrie_t; zmq_assert (next.table [c - min]); } - return next.table [c - min]->add (prefix_ + 1, size_ - 1, pipe_); + return next.table [c - min]->add_helper (prefix_ + 1, size_ - 1, pipe_); } } @@ -175,23 +181,29 @@ void zmq::mtrie_t::rm_helper (pipe_t *pipe_, unsigned char **buff_, bool zmq::mtrie_t::rm (unsigned char *prefix_, size_t size_, pipe_t *pipe_) { - if (!size_) { - pipes_t::size_type erased = pipes.erase (pipe_); - zmq_assert (erased == 1); - return pipes.empty (); - } + return rm_helper (prefix_, size_, pipe_); +} - unsigned char c = *prefix_; - if (!count || c < min || c >= min + count) - return false; +bool zmq::mtrie_t::rm_helper (unsigned char *prefix_, size_t size_, + pipe_t *pipe_) +{ + if (!size_) { + pipes_t::size_type erased = pipes.erase (pipe_); + zmq_assert (erased == 1); + return pipes.empty (); + } + + unsigned char c = *prefix_; + if (!count || c < min || c >= min + count) + return false; - mtrie_t *next_node = - count == 1 ? next.node : next.table [c - min]; + mtrie_t *next_node = + count == 1 ? next.node : next.table [c - min]; - if (!next_node) - return false; + if (!next_node) + return false; - return next_node->rm (prefix_ + 1, size_ - 1, pipe_); + return next_node->rm_helper (prefix_ + 1, size_ - 1, pipe_); } void zmq::mtrie_t::match (unsigned char *data_, size_t size_, pipes_t &pipes_) -- cgit v1.2.3