Commit 70251887 authored by Markus Armbruster's avatar Markus Armbruster
Browse files

qom: Make all the object_property_add_FOO() return the property



Some object_property_add_FOO() return the newly added property, some
don't.  Clean that up.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Message-Id: <20200505152926.18877-7-armbru@redhat.com>
parent 44a17fe0
Loading
Loading
Loading
Loading
+37 −13
Original line number Diff line number Diff line
@@ -1491,8 +1491,10 @@ Object *object_resolve_path_component(Object *parent, const char *part);
 * The value of a child property as a C string will be the child object's
 * canonical path. It can be retrieved using object_property_get_str().
 * The child object itself can be retrieved using object_property_get_link().
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_child(Object *obj, const char *name,
ObjectProperty *object_property_add_child(Object *obj, const char *name,
                                          Object *child, Error **errp);

typedef enum {
@@ -1542,8 +1544,10 @@ void object_property_allow_set_link(const Object *, const char *,
 * <code>@flags</code> <code>OBJ_PROP_LINK_STRONG</code> bit is set,
 * the reference count is decremented when the property is deleted or
 * modified.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_link(Object *obj, const char *name,
ObjectProperty *object_property_add_link(Object *obj, const char *name,
                              const char *type, Object **targetp,
                              void (*check)(const Object *obj, const char *name,
                                            Object *val, Error **errp),
@@ -1569,8 +1573,10 @@ ObjectProperty *object_class_property_add_link(ObjectClass *oc,
 *
 * Add a string property using getters/setters.  This function will add a
 * property of type 'string'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_str(Object *obj, const char *name,
ObjectProperty *object_property_add_str(Object *obj, const char *name,
                             char *(*get)(Object *, Error **),
                             void (*set)(Object *, const char *, Error **),
                             Error **errp);
@@ -1592,8 +1598,10 @@ ObjectProperty *object_class_property_add_str(ObjectClass *klass,
 *
 * Add a bool property using getters/setters.  This function will add a
 * property of type 'bool'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_bool(Object *obj, const char *name,
ObjectProperty *object_property_add_bool(Object *obj, const char *name,
                              bool (*get)(Object *, Error **),
                              void (*set)(Object *, bool, Error **),
                              Error **errp);
@@ -1615,8 +1623,10 @@ ObjectProperty *object_class_property_add_bool(ObjectClass *klass,
 *
 * Add an enum property using getters/setters.  This function will add a
 * property of type '@typename'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_enum(Object *obj, const char *name,
ObjectProperty *object_property_add_enum(Object *obj, const char *name,
                              const char *typename,
                              const QEnumLookup *lookup,
                              int (*get)(Object *, Error **),
@@ -1640,8 +1650,10 @@ ObjectProperty *object_class_property_add_enum(ObjectClass *klass,
 *
 * Add a read-only struct tm valued property using a getter function.
 * This function will add a property of type 'struct tm'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_tm(Object *obj, const char *name,
ObjectProperty *object_property_add_tm(Object *obj, const char *name,
                            void (*get)(Object *, struct tm *, Error **),
                            Error **errp);

@@ -1669,8 +1681,10 @@ typedef enum {
 *
 * Add an integer property in memory.  This function will add a
 * property of type 'uint8'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_uint8_ptr(Object *obj, const char *name,
ObjectProperty *object_property_add_uint8_ptr(Object *obj, const char *name,
                                   const uint8_t *v, ObjectPropertyFlags flags,
                                   Error **errp);

@@ -1690,8 +1704,10 @@ ObjectProperty *object_class_property_add_uint8_ptr(ObjectClass *klass,
 *
 * Add an integer property in memory.  This function will add a
 * property of type 'uint16'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_uint16_ptr(Object *obj, const char *name,
ObjectProperty *object_property_add_uint16_ptr(Object *obj, const char *name,
                                    const uint16_t *v,
                                    ObjectPropertyFlags flags,
                                    Error **errp);
@@ -1712,8 +1728,10 @@ ObjectProperty *object_class_property_add_uint16_ptr(ObjectClass *klass,
 *
 * Add an integer property in memory.  This function will add a
 * property of type 'uint32'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_uint32_ptr(Object *obj, const char *name,
ObjectProperty *object_property_add_uint32_ptr(Object *obj, const char *name,
                                    const uint32_t *v,
                                    ObjectPropertyFlags flags,
                                    Error **errp);
@@ -1734,8 +1752,10 @@ ObjectProperty *object_class_property_add_uint32_ptr(ObjectClass *klass,
 *
 * Add an integer property in memory.  This function will add a
 * property of type 'uint64'.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_uint64_ptr(Object *obj, const char *name,
ObjectProperty *object_property_add_uint64_ptr(Object *obj, const char *name,
                                    const uint64_t *v,
                                    ObjectPropertyFlags flags,
                                    Error **Errp);
@@ -1761,8 +1781,10 @@ ObjectProperty *object_class_property_add_uint64_ptr(ObjectClass *klass,
 * this property exists.  In the case of a child object or an alias on the same
 * object this will be the case.  For aliases to other objects the caller is
 * responsible for taking a reference.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_alias(Object *obj, const char *name,
ObjectProperty *object_property_add_alias(Object *obj, const char *name,
                               Object *target_obj, const char *target_name,
                               Error **errp);

@@ -1780,8 +1802,10 @@ void object_property_add_alias(Object *obj, const char *name,
 * this property exists.  In the case @target is a child of @obj,
 * this will be the case.  Otherwise, the caller is responsible for
 * taking a reference.
 *
 * Returns: The newly added property on success, or %NULL on failure.
 */
void object_property_add_const_link(Object *obj, const char *name,
ObjectProperty *object_property_add_const_link(Object *obj, const char *name,
                                    Object *target, Error **errp);

/**
+127 −123
Original line number Diff line number Diff line
@@ -1646,33 +1646,30 @@ static void object_finalize_child_property(Object *obj, const char *name,
    object_unref(child);
}

void object_property_add_child(Object *obj, const char *name,
ObjectProperty *
object_property_add_child(Object *obj, const char *name,
                          Object *child, Error **errp)
{
    Error *local_err = NULL;
    char *type;
    g_autofree char *type = NULL;
    ObjectProperty *op;

    if (child->parent != NULL) {
        error_setg(errp, "child object is already parented");
        return;
        return NULL;
    }

    type = g_strdup_printf("child<%s>", object_get_typename(OBJECT(child)));

    op = object_property_add(obj, name, type, object_get_child_property, NULL,
                             object_finalize_child_property, child, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
        goto out;
                             object_finalize_child_property, child, errp);
    if (!op) {
        return NULL;
    }

    op->resolve = object_resolve_child_property;
    object_ref(child);
    child->parent = obj;

out:
    g_free(type);
    return op;
}

void object_property_allow_set_link(const Object *obj, const char *name,
@@ -1819,16 +1816,16 @@ static void object_release_link_property(Object *obj, const char *name,
    }
}

static void object_add_link_prop(Object *obj, const char *name,
static ObjectProperty *
object_add_link_prop(Object *obj, const char *name,
                     const char *type, void *ptr,
                     void (*check)(const Object *, const char *,
                                   Object *, Error **),
                     ObjectPropertyLinkFlags flags,
                     Error **errp)
{
    Error *local_err = NULL;
    LinkProperty *prop = g_malloc(sizeof(*prop));
    char *full_type;
    g_autofree char *full_type = NULL;
    ObjectProperty *op;

    if (flags & OBJ_PROP_LINK_DIRECT) {
@@ -1846,27 +1843,26 @@ static void object_add_link_prop(Object *obj, const char *name,
                             check ? object_set_link_property : NULL,
                             object_release_link_property,
                             prop,
                             &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
                             errp);
    if (!op) {
        g_free(prop);
        goto out;
        return NULL;
    }

    op->resolve = object_resolve_link_property;

out:
    g_free(full_type);
    return op;
}

void object_property_add_link(Object *obj, const char *name,
ObjectProperty *
object_property_add_link(Object *obj, const char *name,
                         const char *type, Object **targetp,
                         void (*check)(const Object *, const char *,
                                       Object *, Error **),
                         ObjectPropertyLinkFlags flags,
                         Error **errp)
{
    object_add_link_prop(obj, name, type, targetp, check, flags, errp);
    return object_add_link_prop(obj, name, type, targetp, check, flags,
                                errp);
}

ObjectProperty *
@@ -1908,10 +1904,12 @@ out:
    return op;
}

void object_property_add_const_link(Object *obj, const char *name,
ObjectProperty *
object_property_add_const_link(Object *obj, const char *name,
                               Object *target, Error **errp)
{
    object_add_link_prop(obj, name, object_get_typename(target), target,
    return object_add_link_prop(obj, name,
                                object_get_typename(target), target,
                                NULL, OBJ_PROP_LINK_DIRECT, errp);
}

@@ -2121,26 +2119,27 @@ static void property_release_str(Object *obj, const char *name,
    g_free(prop);
}

void object_property_add_str(Object *obj, const char *name,
ObjectProperty *
object_property_add_str(Object *obj, const char *name,
                        char *(*get)(Object *, Error **),
                        void (*set)(Object *, const char *, Error **),
                        Error **errp)
{
    Error *local_err = NULL;
    StringProperty *prop = g_malloc0(sizeof(*prop));
    ObjectProperty *op;

    prop->get = get;
    prop->set = set;

    object_property_add(obj, name, "string",
    op = object_property_add(obj, name, "string",
                             get ? property_get_str : NULL,
                             set ? property_set_str : NULL,
                             property_release_str,
                        prop, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
                             prop, errp);
    if (!op) {
        g_free(prop);
    }
    return op;
}

ObjectProperty *
@@ -2215,26 +2214,27 @@ static void property_release_bool(Object *obj, const char *name,
    g_free(prop);
}

void object_property_add_bool(Object *obj, const char *name,
ObjectProperty *
object_property_add_bool(Object *obj, const char *name,
                         bool (*get)(Object *, Error **),
                         void (*set)(Object *, bool, Error **),
                         Error **errp)
{
    Error *local_err = NULL;
    BoolProperty *prop = g_malloc0(sizeof(*prop));
    ObjectProperty *op;

    prop->get = get;
    prop->set = set;

    object_property_add(obj, name, "bool",
    op = object_property_add(obj, name, "bool",
                             get ? property_get_bool : NULL,
                             set ? property_set_bool : NULL,
                             property_release_bool,
                        prop, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
                             prop, errp);
    if (!op) {
        g_free(prop);
    }
    return op;
}

ObjectProperty *
@@ -2301,29 +2301,30 @@ static void property_release_enum(Object *obj, const char *name,
    g_free(prop);
}

void object_property_add_enum(Object *obj, const char *name,
ObjectProperty *
object_property_add_enum(Object *obj, const char *name,
                         const char *typename,
                         const QEnumLookup *lookup,
                         int (*get)(Object *, Error **),
                         void (*set)(Object *, int, Error **),
                         Error **errp)
{
    Error *local_err = NULL;
    EnumProperty *prop = g_malloc(sizeof(*prop));
    ObjectProperty *op;

    prop->lookup = lookup;
    prop->get = get;
    prop->set = set;

    object_property_add(obj, name, typename,
    op = object_property_add(obj, name, typename,
                             get ? property_get_enum : NULL,
                             set ? property_set_enum : NULL,
                             property_release_enum,
                        prop, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
                             prop, errp);
    if (!op) {
        g_free(prop);
    }
    return op;
}

ObjectProperty *
@@ -2414,23 +2415,24 @@ static void property_release_tm(Object *obj, const char *name,
    g_free(prop);
}

void object_property_add_tm(Object *obj, const char *name,
ObjectProperty *
object_property_add_tm(Object *obj, const char *name,
                       void (*get)(Object *, struct tm *, Error **),
                       Error **errp)
{
    Error *local_err = NULL;
    TMProperty *prop = g_malloc0(sizeof(*prop));
    ObjectProperty *op;

    prop->get = get;

    object_property_add(obj, name, "struct tm",
    op = object_property_add(obj, name, "struct tm",
                             get ? property_get_tm : NULL, NULL,
                             property_release_tm,
                        prop, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
                             prop, errp);
    if (!op) {
        g_free(prop);
    }
    return op;
}

ObjectProperty *
@@ -2553,7 +2555,8 @@ static void property_set_uint64_ptr(Object *obj, Visitor *v, const char *name,
    *field = value;
}

void object_property_add_uint8_ptr(Object *obj, const char *name,
ObjectProperty *
object_property_add_uint8_ptr(Object *obj, const char *name,
                              const uint8_t *v,
                              ObjectPropertyFlags flags,
                              Error **errp)
@@ -2569,7 +2572,7 @@ void object_property_add_uint8_ptr(Object *obj, const char *name,
        setter = property_set_uint8_ptr;
    }

    object_property_add(obj, name, "uint8",
    return object_property_add(obj, name, "uint8",
                               getter, setter, NULL, (void *)v, errp);
}

@@ -2594,7 +2597,8 @@ object_class_property_add_uint8_ptr(ObjectClass *klass, const char *name,
                                     getter, setter, NULL, (void *)v, errp);
}

void object_property_add_uint16_ptr(Object *obj, const char *name,
ObjectProperty *
object_property_add_uint16_ptr(Object *obj, const char *name,
                               const uint16_t *v,
                               ObjectPropertyFlags flags,
                               Error **errp)
@@ -2610,7 +2614,7 @@ void object_property_add_uint16_ptr(Object *obj, const char *name,
        setter = property_set_uint16_ptr;
    }

    object_property_add(obj, name, "uint16",
    return object_property_add(obj, name, "uint16",
                               getter, setter, NULL, (void *)v, errp);
}

@@ -2635,7 +2639,8 @@ object_class_property_add_uint16_ptr(ObjectClass *klass, const char *name,
                                     getter, setter, NULL, (void *)v, errp);
}

void object_property_add_uint32_ptr(Object *obj, const char *name,
ObjectProperty *
object_property_add_uint32_ptr(Object *obj, const char *name,
                               const uint32_t *v,
                               ObjectPropertyFlags flags,
                               Error **errp)
@@ -2651,7 +2656,7 @@ void object_property_add_uint32_ptr(Object *obj, const char *name,
        setter = property_set_uint32_ptr;
    }

    object_property_add(obj, name, "uint32",
    return object_property_add(obj, name, "uint32",
                               getter, setter, NULL, (void *)v, errp);
}

@@ -2676,7 +2681,8 @@ object_class_property_add_uint32_ptr(ObjectClass *klass, const char *name,
                                     getter, setter, NULL, (void *)v, errp);
}

void object_property_add_uint64_ptr(Object *obj, const char *name,
ObjectProperty *
object_property_add_uint64_ptr(Object *obj, const char *name,
                               const uint64_t *v,
                               ObjectPropertyFlags flags,
                               Error **errp)
@@ -2692,7 +2698,7 @@ void object_property_add_uint64_ptr(Object *obj, const char *name,
        setter = property_set_uint64_ptr;
    }

    object_property_add(obj, name, "uint64",
    return object_property_add(obj, name, "uint64",
                               getter, setter, NULL, (void *)v, errp);
}

@@ -2754,19 +2760,19 @@ static void property_release_alias(Object *obj, const char *name, void *opaque)
    g_free(prop);
}

void object_property_add_alias(Object *obj, const char *name,
ObjectProperty *
object_property_add_alias(Object *obj, const char *name,
                          Object *target_obj, const char *target_name,
                          Error **errp)
{
    AliasProperty *prop;
    ObjectProperty *op;
    ObjectProperty *target_prop;
    char *prop_type;
    Error *local_err = NULL;
    g_autofree char *prop_type = NULL;

    target_prop = object_property_find(target_obj, target_name, errp);
    if (!target_prop) {
        return;
        return NULL;
    }

    if (object_property_is_child(target_prop)) {
@@ -2784,12 +2790,12 @@ void object_property_add_alias(Object *obj, const char *name,
                             property_get_alias,
                             property_set_alias,
                             property_release_alias,
                             prop, &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
                             prop, errp);
    if (!op) {
        g_free(prop);
        goto out;
        return NULL;
    }

    op->resolve = property_resolve_alias;
    if (target_prop->defval) {
        op->defval = qobject_ref(target_prop->defval);
@@ -2798,9 +2804,7 @@ void object_property_add_alias(Object *obj, const char *name,
    object_property_set_description(obj, op->name,
                                    target_prop->description,
                                    &error_abort);

out:
    g_free(prop_type);
    return op;
}

void object_property_set_description(Object *obj, const char *name,