aboutsummaryrefslogtreecommitdiff
path: root/qom
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2020-07-07 18:05:56 +0200
committerMarkus Armbruster <armbru@redhat.com>2020-07-10 15:18:08 +0200
commit778a2dc59213d789f5bf8409547b529af4eb9ead (patch)
tree5fa10bb05617c2d20de9d7daf5376a85914e3967 /qom
parent6fd5bef10b8f0bf64df4e800bfda1da5fe17ca82 (diff)
qom: Use returned bool to check for failure, Coccinelle part
The previous commit enables conversion of foo(..., &err); if (err) { ... } to if (!foo(..., errp)) { ... } for QOM functions that now return true / false on success / error. Coccinelle script: @@ identifier fun = { object_apply_global_props, object_initialize_child_with_props, object_initialize_child_with_propsv, object_property_get, object_property_get_bool, object_property_parse, object_property_set, object_property_set_bool, object_property_set_int, object_property_set_link, object_property_set_qobject, object_property_set_str, object_property_set_uint, object_set_props, object_set_propv, user_creatable_add_dict, user_creatable_complete, user_creatable_del }; expression list args, args2; typedef Error; Error *err; @@ - fun(args, &err, args2); - if (err) + if (!fun(args, &err, args2)) { ... } Fails to convert hw/arm/armsse.c, because Coccinelle gets confused by ARMSSE being used both as typedef and function-like macro there. Convert manually. Line breaks tidied up manually. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20200707160613.848843-29-armbru@redhat.com>
Diffstat (limited to 'qom')
-rw-r--r--qom/object.c15
-rw-r--r--qom/object_interfaces.c6
2 files changed, 7 insertions, 14 deletions
diff --git a/qom/object.c b/qom/object.c
index 65ed2968b7..e71266bdb8 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -405,8 +405,7 @@ bool object_apply_global_props(Object *obj, const GPtrArray *props,
continue;
}
p->used = true;
- object_property_parse(obj, p->property, p->value, &err);
- if (err != NULL) {
+ if (!object_property_parse(obj, p->property, p->value, &err)) {
error_prepend(&err, "can't apply global %s.%s=%s: ",
p->driver, p->property, p->value);
/*
@@ -566,8 +565,7 @@ bool object_initialize_child_with_propsv(Object *parentobj,
uc = (UserCreatable *)object_dynamic_cast(obj, TYPE_USER_CREATABLE);
if (uc) {
- user_creatable_complete(uc, &local_err);
- if (local_err) {
+ if (!user_creatable_complete(uc, &local_err)) {
object_unparent(obj);
goto out;
}
@@ -764,8 +762,7 @@ Object *object_new_with_propv(const char *typename,
uc = (UserCreatable *)object_dynamic_cast(obj, TYPE_USER_CREATABLE);
if (uc) {
- user_creatable_complete(uc, &local_err);
- if (local_err) {
+ if (!user_creatable_complete(uc, &local_err)) {
if (id != NULL) {
object_unparent(obj);
}
@@ -810,8 +807,7 @@ int object_set_propv(Object *obj,
const char *value = va_arg(vargs, char *);
g_assert(value != NULL);
- object_property_parse(obj, propname, value, &local_err);
- if (local_err) {
+ if (!object_property_parse(obj, propname, value, &local_err)) {
error_propagate(errp, local_err);
return -1;
}
@@ -1608,8 +1604,7 @@ char *object_property_print(Object *obj, const char *name, bool human,
Error *local_err = NULL;
v = string_output_visitor_new(human, &string);
- object_property_get(obj, name, v, &local_err);
- if (local_err) {
+ if (!object_property_get(obj, name, v, &local_err)) {
error_propagate(errp, local_err);
goto out;
}
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index 382198504c..15fff66c3c 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -70,8 +70,7 @@ Object *user_creatable_add_type(const char *type, const char *id,
goto out;
}
for (e = qdict_first(qdict); e; e = qdict_next(qdict, e)) {
- object_property_set(obj, e->key, v, &local_err);
- if (local_err) {
+ if (!object_property_set(obj, e->key, v, &local_err)) {
break;
}
}
@@ -88,8 +87,7 @@ Object *user_creatable_add_type(const char *type, const char *id,
id, obj);
}
- user_creatable_complete(USER_CREATABLE(obj), &local_err);
- if (local_err) {
+ if (!user_creatable_complete(USER_CREATABLE(obj), &local_err)) {
if (id != NULL) {
object_property_del(object_get_objects_root(), id);
}