提交 50545b2c 编写于 作者: M Marc-André Lureau

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: NMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: NIgor Mammedov <imammedo@redhat.com>
Reviewed-by: NCornelia Huck <cohuck@redhat.com>
Acked-by: NEduardo Habkost <ehabkost@redhat.com>
上级 cff8b715
......@@ -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 --- */
......
......@@ -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);
error_propagate(errp, err);
/*
* 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);
}
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册