From ef296710c62a95b6440bf570ef10d0448c963647 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Thu, 7 Dec 2006 19:10:26 +0000 Subject: [PATCH] added a few debug checks and a fix for deallocation --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40200 --- core/sm_trie.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/sm_trie.cpp b/core/sm_trie.cpp index a102b868..b0dbd8d5 100644 --- a/core/sm_trie.cpp +++ b/core/sm_trie.cpp @@ -263,7 +263,7 @@ void sm_trie_destroy(Trie *trie) { free(trie->base); free(trie->stringtab); - free(trie); + delete trie; } bool sm_trie_retrieve(Trie *trie, const char *key, void **value) @@ -424,9 +424,11 @@ bool sm_trie_insert(Trie *trie, const char *key, void *value) if (incoming_base + incoming_limit > trie->baseSize) { - incoming_limit = trie->baseSize - incoming_limit; + incoming_limit = trie->baseSize - incoming_base; } + assert(incoming_limit > 0 && incoming_limit <= 255); + for (unsigned int i=1; i<=255; i++,cur++) { if (cur->mode == Node_Arc || cur->mode == Node_Term) @@ -707,6 +709,8 @@ bool sm_trie_insert(Trie *trie, const char *key, void *value) /* Phew! */ return true; + } else { + assert(node->mode == Node_Arc); } } lastidx = curidx;