summaryrefslogtreecommitdiff
path: root/src/map.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map.c')
-rw-r--r--src/map.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/map.c b/src/map.c
index 6d89e36..40f376c 100644
--- a/src/map.c
+++ b/src/map.c
@@ -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;