diff options
Diffstat (limited to 'src/map.c')
-rw-r--r-- | src/map.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -102,6 +102,8 @@ static void HXrbtree_free(struct HXrbtree *btree) EXPORT_SYMBOL void HXmap_free(struct HXmap *xmap) { + if (xmap == NULL) + return; void *vmap = xmap; const struct HXmap_private *map = vmap; @@ -1302,11 +1304,12 @@ static struct HXrbnode *HXrbtrav_rewalk(struct HXrbtrav *trav) trav->current = trav->path[--trav->depth]; if (trav->current == NULL) fprintf(stderr, "btrav_rewalk: problem: current==NULL\n"); - HXrbtrav_checkpoint(trav, trav->current); + else + HXrbtrav_checkpoint(trav, trav->current); } trav->tid = btree->tid; - if (go_next) + if (trav->current != nullptr && go_next) return HXrbtrav_next(trav); else return trav->current; |