From eac589caf97daece0523e5e768765d584851f4ce Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 5 Mar 2019 22:58:11 -0800 Subject: trie: Minor optimization --- trie.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/trie.c b/trie.c index 425cfe1..c38ad2c 100644 --- a/trie.c +++ b/trie.c @@ -204,14 +204,13 @@ static struct trie_leaf *trie_representative(const struct trie *trie, const void struct trie_node *node = trie_decode_node(ptr); offset += node->offset; - unsigned char nibble = 0; - if ((offset >> 1) < length) { - nibble = trie_key_nibble(key, offset); - } - unsigned int bit = 1U << nibble; unsigned int index = 0; - if (node->bitmap & bit) { - index = trie_popcount(node->bitmap & (bit - 1)); + if ((offset >> 1) < length) { + unsigned char nibble = trie_key_nibble(key, offset); + unsigned int bit = 1U << nibble; + if (node->bitmap & bit) { + index = trie_popcount(node->bitmap & (bit - 1)); + } } ptr = node->children[index]; } -- cgit v1.2.3