aboutsummaryrefslogtreecommitdiff
path: root/qom/object_interfaces.c
diff options
context:
space:
mode:
Diffstat (limited to 'qom/object_interfaces.c')
-rw-r--r--qom/object_interfaces.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index ad9b56b..3b61c19 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -46,25 +46,18 @@ static void object_set_properties_from_qdict(Object *obj, const QDict *qdict,
Visitor *v, Error **errp)
{
const QDictEntry *e;
- Error *local_err = NULL;
- if (!visit_start_struct(v, NULL, NULL, 0, &local_err)) {
- goto out;
+ if (!visit_start_struct(v, NULL, NULL, 0, errp)) {
+ return;
}
for (e = qdict_first(qdict); e; e = qdict_next(qdict, e)) {
- if (!object_property_set(obj, e->key, v, &local_err)) {
- break;
+ if (!object_property_set(obj, e->key, v, errp)) {
+ goto out;
}
}
- if (!local_err) {
- visit_check_struct(v, &local_err);
- }
- visit_end_struct(v, NULL);
-
+ visit_check_struct(v, errp);
out:
- if (local_err) {
- error_propagate(errp, local_err);
- }
+ visit_end_struct(v, NULL);
}
void object_set_properties_from_keyval(Object *obj, const QDict *qdict,