qom: have object_set_props_keyval return bool
This matches the convention established by the object_set_props and object_set_propv methods. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Daniel P. Berrangé committed
Apr 17, 2026 at 16:15 UTC
24984a97eb7c3661edf8e3b30f9dd5b84b700ee4
2 files changed
+12
-5
include/qom/object.h
+3
-1
@@ -924,8 +924,10 @@ bool type_print_class_properties(const char *type);
924
*
925
* For each key in the dictionary, parse the value string if needed,
926
* then set the corresponding property in @obj.
927
+ *
928
+ * Returns: %true on success, %false on error.
929
*/
928
-void object_set_props_from_keyval(Object *obj, const QDict *qdict,
930
+bool object_set_props_from_keyval(Object *obj, const QDict *qdict,
931
bool from_json, Error **errp);
932
933
/**
qom/object_interfaces.c
+9
-4
@@ -44,13 +44,14 @@ bool user_creatable_can_be_deleted(UserCreatable *uc)
44
}
45
}
46
47
-static void object_set_props_from_qdict(Object *obj, const QDict *qdict,
47
+static bool object_set_props_from_qdict(Object *obj, const QDict *qdict,
48
Visitor *v, Error **errp)
49
{
50
+ ERRP_GUARD();
51
const QDictEntry *e;
52
53
if (!visit_start_struct(v, NULL, NULL, 0, errp)) {
53
- return;
54
+ return false;
55
}
56
for (e = qdict_first(qdict); e; e = qdict_next(qdict, e)) {
57
if (!object_property_set(obj, e->key, v, errp)) {
@@ -60,19 +61,23 @@ static void object_set_props_from_qdict(Object *obj, const QDict *qdict,
61
visit_check_struct(v, errp);
62
out:
63
visit_end_struct(v, NULL);
64
+
65
+ return *errp == NULL;
66
}
67
65
-void object_set_props_from_keyval(Object *obj, const QDict *qdict,
68
+bool object_set_props_from_keyval(Object *obj, const QDict *qdict,
69
bool from_json, Error **errp)
70
{
71
+ bool ret;
72
Visitor *v;
73
if (from_json) {
74
v = qobject_input_visitor_new(QOBJECT(qdict));
75
} else {
76
v = qobject_input_visitor_new_keyval(QOBJECT(qdict));
77
}
74
- object_set_props_from_qdict(obj, qdict, v, errp);
78
+ ret = object_set_props_from_qdict(obj, qdict, v, errp);
79
visit_free(v);
80
+ return ret;
81
}
82
83
Object *user_creatable_add_type(const char *type, const char *id,