From 124f5f357c43bc8eed77a234636cb171826dd95e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 22 Mar 2019 23:16:54 +0100 Subject: Fix GET(TRIE(T)) erroring when target was a neighbour. --- src/trie.inc.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/trie.inc.h b/src/trie.inc.h index ffc8ac8e..64e5239d 100644 --- a/src/trie.inc.h +++ b/src/trie.inc.h @@ -87,16 +87,19 @@ TYPE* GET(TRIE(TYPE)) ( TRIE(TYPE)* trie, char* key ) { char* subkey = key; while (n != NULL) { - if (subkey[1] == '\0') { - /* Wanted node found, - * value can however be NULL */ - return n->value; - } else if (subkey[0] == n->c) { - n = n->child; - subkey++; + if (subkey[0] == n->c) { + if (subkey[1] == '\0') { + /* Wanted node found, + * value can however be NULL */ + return n->value; + } else { + n = n->child; + subkey++; + } } else { n = n->next; } + } /* Position not found */ -- cgit v1.2.3