qdev-props: call object_apply_global_props()
It's now possible to use the common function. Teach object_apply_global_props() to warn if Error argument is NULL. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Acked-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
cff8b715c0
commit
50545b2cc0
@ -1223,28 +1223,8 @@ int qdev_prop_check_globals(void)
|
||||
|
||||
void qdev_prop_set_globals(DeviceState *dev)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < global_props()->len; i++) {
|
||||
GlobalProperty *prop;
|
||||
Error *err = NULL;
|
||||
|
||||
prop = g_ptr_array_index(global_props(), i);
|
||||
if (object_dynamic_cast(OBJECT(dev), prop->driver) == NULL) {
|
||||
continue;
|
||||
}
|
||||
prop->used = true;
|
||||
object_property_parse(OBJECT(dev), prop->value, prop->property, &err);
|
||||
if (err != NULL) {
|
||||
error_prepend(&err, "can't apply global %s.%s=%s: ",
|
||||
prop->driver, prop->property, prop->value);
|
||||
if (!dev->hotplugged) {
|
||||
error_propagate(&error_fatal, err);
|
||||
} else {
|
||||
warn_report_err(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
object_apply_global_props(OBJECT(dev), global_props(),
|
||||
dev->hotplugged ? NULL : &error_fatal);
|
||||
}
|
||||
|
||||
/* --- 64bit unsigned int 'size' type --- */
|
||||
|
10
qom/object.c
10
qom/object.c
@ -390,7 +390,17 @@ void object_apply_global_props(Object *obj, const GPtrArray *props, Error **errp
|
||||
if (err != NULL) {
|
||||
error_prepend(&err, "can't apply global %s.%s=%s: ",
|
||||
p->driver, p->property, p->value);
|
||||
/*
|
||||
* If errp != NULL, propagate error and return.
|
||||
* If errp == NULL, report a warning, but keep going
|
||||
* with the remaining globals.
|
||||
*/
|
||||
if (errp) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
} else {
|
||||
warn_report_err(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user