}
if ( node->isskip ) {
- if ( in->keylen>0 && in->keylen - (((char*)ptr) - in->key) > node->nchar )
+ if ( in->keylen>0 && in->keylen - (((char*)ptr) - in->key) < node->nchar )
return NULL;
else if ( STRNCMP(ptr, ((char*)node)+node->dataptr, node->nchar) ) {
ptr+=node->nchar;
return 1;
}
- if ( s == NULL || s->node == NULL)
+ if ( s == NULL )
return 0;
+ if ( s->node == NULL ) {
+ info->stack = s->next;
+ tfree(s);
+ return SFSIterate(info, out);
+ }
while ( s->level + s->node->nchar + 1 >= info->tlen ) {
info->tlen *= 2;