qom: object: Ignore refs/unrefs of NULL

Just do nothing if passed NULL for a ref or unref. This avoids
call sites that manage a combination of NULL or non-NULL pointers
having to add iffery around every ref and unref.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Peter Crosthwaite 2014-06-05 23:13:36 -07:00 committed by Paolo Bonzini
parent c28322d10c
commit 8ffad850ef

View file

@ -711,11 +711,17 @@ GSList *object_class_get_list(const char *implements_type,
void object_ref(Object *obj)
{
if (!obj) {
return;
}
atomic_inc(&obj->ref);
}
void object_unref(Object *obj)
{
if (!obj) {
return;
}
g_assert(obj->ref > 0);
/* parent always holds a reference to its children */
@ -1160,13 +1166,9 @@ static void object_set_link_property(Object *obj, Visitor *v, void *opaque,
return;
}
if (new_target) {
object_ref(new_target);
}
object_ref(new_target);
*child = new_target;
if (old_target != NULL) {
object_unref(old_target);
}
object_unref(old_target);
}
static Object *object_resolve_link_property(Object *parent, void *opaque, const gchar *part)