On 17/04/2015 16:22, Daniel P. Berrange wrote:
> +
> +Object *object_new_proplist(const char *typename,
> +                            const char *id,
> +                            Error **errp,
> +                            va_list vargs)
> +{
> +    Object *obj;
> +    const char *propname;
> +
> +    obj = object_new(typename);
> +
> +    if (object_class_is_abstract(object_get_class(obj))) {
> +        error_setg(errp, "object type '%s' is abstract", typename);
> +        goto error;
> +    }
> +
> +    propname = va_arg(vargs, char *);
> +    while (propname != NULL) {
> +        const char *value = va_arg(vargs, char *);
> +
> +        object_property_parse(obj, value, propname, errp);
> +        if (*errp) {
> +            goto error;
> +        }
> +        propname = va_arg(vargs, char *);
> +    }
> +
> +    object_property_add_child(container_get(object_get_root(), "/objects"),
> +                              id, obj, errp);

I would pass the parent as an additional argument to
object_new_proplist().  Otherwise looks good.

Paolo

Reply via email to