Skip to content

Commit

Permalink
qom: simplify qmp_device_list_properties()
Browse files Browse the repository at this point in the history
All qdev properties are object properties, no need for
make_device_property_info() helper.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20200110153039.1379601-24-marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
  • Loading branch information
bonzini committed Jan 24, 2020
1 parent f902cb2 commit c1f472e
Showing 1 changed file with 5 additions and 47 deletions.
52 changes: 5 additions & 47 deletions qom/qom-qmp-cmds.c
Expand Up @@ -121,48 +121,6 @@ ObjectTypeInfoList *qmp_qom_list_types(bool has_implements,
return ret;
}

/* Return a DevicePropertyInfo for a qdev property.
*
* If a qdev property with the given name does not exist, use the given default
* type. If the qdev property info should not be shown, return NULL.
*
* The caller must free the return value.
*/
static ObjectPropertyInfo *make_device_property_info(ObjectClass *klass,
const char *name,
const char *default_type,
const char *description)
{
ObjectPropertyInfo *info;
Property *prop;

do {
for (prop = DEVICE_CLASS(klass)->props_; prop && prop->name; prop++) {
if (strcmp(name, prop->name) != 0) {
continue;
}

info = g_malloc0(sizeof(*info));
info->name = g_strdup(prop->name);
info->type = default_type ? g_strdup(default_type)
: g_strdup(prop->info->name);
info->has_description = !!prop->info->description;
info->description = g_strdup(prop->info->description);
return info;
}
klass = object_class_get_parent(klass);
} while (klass != object_class_by_name(TYPE_DEVICE));

/* Not a qdev property, use the default type */
info = g_malloc0(sizeof(*info));
info->name = g_strdup(name);
info->type = g_strdup(default_type);
info->has_description = !!description;
info->description = g_strdup(description);

return info;
}

ObjectPropertyInfoList *qmp_device_list_properties(const char *typename,
Error **errp)
{
Expand Down Expand Up @@ -214,11 +172,11 @@ ObjectPropertyInfoList *qmp_device_list_properties(const char *typename,
continue;
}

info = make_device_property_info(klass, prop->name, prop->type,
prop->description);
if (!info) {
continue;
}
info = g_new0(ObjectPropertyInfo, 1);
info->name = g_strdup(prop->name);
info->type = g_strdup(prop->type);
info->has_description = !!prop->description;
info->description = g_strdup(prop->description);

entry = g_malloc0(sizeof(*entry));
entry->value = info;
Expand Down

0 comments on commit c1f472e

Please sign in to comment.