added a few debug checks and a fix for deallocation

--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40200
This commit is contained in:
David Anderson 2006-12-07 19:10:26 +00:00
parent 5fc2918377
commit ef296710c6

View File

@ -263,7 +263,7 @@ void sm_trie_destroy(Trie *trie)
{ {
free(trie->base); free(trie->base);
free(trie->stringtab); free(trie->stringtab);
free(trie); delete trie;
} }
bool sm_trie_retrieve(Trie *trie, const char *key, void **value) 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) 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++) for (unsigned int i=1; i<=255; i++,cur++)
{ {
if (cur->mode == Node_Arc || cur->mode == Node_Term) 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! */ /* Phew! */
return true; return true;
} else {
assert(node->mode == Node_Arc);
} }
} }
lastidx = curidx; lastidx = curidx;