summaryrefslogtreecommitdiff
path: root/lib/qobj.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/qobj.c')
-rw-r--r--lib/qobj.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/qobj.c b/lib/qobj.c
index f64972e32a..8a386d2486 100644
--- a/lib/qobj.c
+++ b/lib/qobj.c
@@ -49,7 +49,7 @@ void qobj_reg(struct qobj_node *node, struct qobj_nodetype *type)
node->nid = (uint64_t)random();
node->nid ^= (uint64_t)random() << 32;
}
- while (hash_get (nodes, node, hash_alloc_intern) != node);
+ while (!node->nid || hash_get (nodes, node, hash_alloc_intern) != node);
}
void qobj_unreg(struct qobj_node *node)
@@ -73,7 +73,8 @@ void *qobj_get_typed(uint64_t id, struct qobj_nodetype *type)
void qobj_init (void)
{
- nodes = hash_create (qobj_key, qobj_cmp);
+ if (!nodes)
+ nodes = hash_create (qobj_key, qobj_cmp);
}
void qobj_finish (void)