Commit 50545b2c authored by Marc-André Lureau's avatar Marc-André Lureau
Browse files

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: default avatarMarc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: default avatarIgor Mammedov <imammedo@redhat.com>
Reviewed-by: default avatarCornelia Huck <cohuck@redhat.com>
Acked-by: default avatarEduardo Habkost <ehabkost@redhat.com>
parent cff8b715
Loading
Loading
Loading
Loading
+2 −22
Original line number Diff line number Diff line
@@ -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 --- */
+11 −1
Original line number Diff line number Diff line
@@ -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);
            }
        }
    }
}