diff options
Diffstat (limited to 'lib/qobj.c')
| -rw-r--r-- | lib/qobj.c | 5 |
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) |
