qapi misc: Elide redundant has_FOO in generated C
The has_FOO for pointer-valued FOO are redundant, except for arrays. They are also a nuisance to work with. Recent commit "qapi: Start to elide redundant has_FOO in generated C" provided the means to elide them step by step. This is the step for qapi/misc.json. Said commit explains the transformation in more detail. The invariant violations mentioned there do not occur here. Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20221104160712.3005652-18-armbru@redhat.com>
This commit is contained in:
parent
720a252c26
commit
9492718b7c
@ -46,8 +46,7 @@ int monitor_read_password(MonitorHMP *mon, ReadLineFunc *readline_func,
|
||||
void *opaque);
|
||||
|
||||
AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdset_id, int64_t fdset_id,
|
||||
bool has_opaque, const char *opaque,
|
||||
Error **errp);
|
||||
const char *opaque, Error **errp);
|
||||
int monitor_fdset_dup_fd_add(int64_t fdset_id, int flags);
|
||||
void monitor_fdset_dup_fd_remove(int dup_fd);
|
||||
int64_t monitor_fdset_dup_fd_find(int dup_fd);
|
||||
|
@ -104,7 +104,7 @@ void hmp_info_name(Monitor *mon, const QDict *qdict)
|
||||
NameInfo *info;
|
||||
|
||||
info = qmp_query_name(NULL);
|
||||
if (info->has_name) {
|
||||
if (info->name) {
|
||||
monitor_printf(mon, "%s\n", info->name);
|
||||
}
|
||||
qapi_free_NameInfo(info);
|
||||
|
@ -1132,7 +1132,7 @@ void monitor_fdsets_cleanup(void)
|
||||
}
|
||||
}
|
||||
|
||||
AddfdInfo *qmp_add_fd(bool has_fdset_id, int64_t fdset_id, bool has_opaque,
|
||||
AddfdInfo *qmp_add_fd(bool has_fdset_id, int64_t fdset_id,
|
||||
const char *opaque, Error **errp)
|
||||
{
|
||||
int fd;
|
||||
@ -1145,8 +1145,7 @@ AddfdInfo *qmp_add_fd(bool has_fdset_id, int64_t fdset_id, bool has_opaque,
|
||||
goto error;
|
||||
}
|
||||
|
||||
fdinfo = monitor_fdset_add_fd(fd, has_fdset_id, fdset_id,
|
||||
has_opaque, opaque, errp);
|
||||
fdinfo = monitor_fdset_add_fd(fd, has_fdset_id, fdset_id, opaque, errp);
|
||||
if (fdinfo) {
|
||||
return fdinfo;
|
||||
}
|
||||
@ -1214,12 +1213,7 @@ FdsetInfoList *qmp_query_fdsets(Error **errp)
|
||||
|
||||
fdsetfd_info = g_malloc0(sizeof(*fdsetfd_info));
|
||||
fdsetfd_info->fd = mon_fdset_fd->fd;
|
||||
if (mon_fdset_fd->opaque) {
|
||||
fdsetfd_info->has_opaque = true;
|
||||
fdsetfd_info->opaque = g_strdup(mon_fdset_fd->opaque);
|
||||
} else {
|
||||
fdsetfd_info->has_opaque = false;
|
||||
}
|
||||
fdsetfd_info->opaque = g_strdup(mon_fdset_fd->opaque);
|
||||
|
||||
QAPI_LIST_PREPEND(fdset_info->fds, fdsetfd_info);
|
||||
}
|
||||
@ -1231,8 +1225,7 @@ FdsetInfoList *qmp_query_fdsets(Error **errp)
|
||||
}
|
||||
|
||||
AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdset_id, int64_t fdset_id,
|
||||
bool has_opaque, const char *opaque,
|
||||
Error **errp)
|
||||
const char *opaque, Error **errp)
|
||||
{
|
||||
MonFdset *mon_fdset = NULL;
|
||||
MonFdsetFd *mon_fdset_fd;
|
||||
@ -1300,9 +1293,7 @@ AddfdInfo *monitor_fdset_add_fd(int fd, bool has_fdset_id, int64_t fdset_id,
|
||||
mon_fdset_fd = g_malloc0(sizeof(*mon_fdset_fd));
|
||||
mon_fdset_fd->fd = fd;
|
||||
mon_fdset_fd->removed = false;
|
||||
if (has_opaque) {
|
||||
mon_fdset_fd->opaque = g_strdup(opaque);
|
||||
}
|
||||
mon_fdset_fd->opaque = g_strdup(opaque);
|
||||
QLIST_INSERT_HEAD(&mon_fdset->fds, mon_fdset_fd, next);
|
||||
|
||||
fdinfo = g_malloc0(sizeof(*fdinfo));
|
||||
|
@ -50,11 +50,7 @@ NameInfo *qmp_query_name(Error **errp)
|
||||
{
|
||||
NameInfo *info = g_malloc0(sizeof(*info));
|
||||
|
||||
if (qemu_name) {
|
||||
info->has_name = true;
|
||||
info->name = g_strdup(qemu_name);
|
||||
}
|
||||
|
||||
info->name = g_strdup(qemu_name);
|
||||
return info;
|
||||
}
|
||||
|
||||
|
@ -759,7 +759,6 @@ class QAPISchemaObjectTypeMember(QAPISchemaMember):
|
||||
assert self.type
|
||||
# Temporary hack to support dropping the has_FOO in reviewable chunks
|
||||
opt_out = [
|
||||
'qapi/misc.json',
|
||||
'qapi/net.json',
|
||||
'qapi/pci.json',
|
||||
'qapi/qdev.json',
|
||||
|
@ -611,7 +611,7 @@ static int parse_add_fd(void *opaque, QemuOpts *opts, Error **errp)
|
||||
}
|
||||
|
||||
/* add the duplicate fd, and optionally the opaque string, to the fd set */
|
||||
fdinfo = monitor_fdset_add_fd(dupfd, true, fdset_id, !!fd_opaque, fd_opaque,
|
||||
fdinfo = monitor_fdset_add_fd(dupfd, true, fdset_id, fd_opaque,
|
||||
&error_abort);
|
||||
g_free(fdinfo);
|
||||
|
||||
|
@ -80,14 +80,8 @@ static CommandLineParameterInfoList *query_option_descs(const QemuOptDesc *desc)
|
||||
break;
|
||||
}
|
||||
|
||||
if (desc[i].help) {
|
||||
info->has_help = true;
|
||||
info->help = g_strdup(desc[i].help);
|
||||
}
|
||||
if (desc[i].def_value_str) {
|
||||
info->has_q_default = true;
|
||||
info->q_default = g_strdup(desc[i].def_value_str);
|
||||
}
|
||||
info->help = g_strdup(desc[i].help);
|
||||
info->q_default = g_strdup(desc[i].def_value_str);
|
||||
|
||||
QAPI_LIST_PREPEND(param_list, info);
|
||||
}
|
||||
@ -241,8 +235,7 @@ static QemuOptsList machine_opts = {
|
||||
}
|
||||
};
|
||||
|
||||
CommandLineOptionInfoList *qmp_query_command_line_options(bool has_option,
|
||||
const char *option,
|
||||
CommandLineOptionInfoList *qmp_query_command_line_options(const char *option,
|
||||
Error **errp)
|
||||
{
|
||||
CommandLineOptionInfoList *conf_list = NULL;
|
||||
@ -250,7 +243,7 @@ CommandLineOptionInfoList *qmp_query_command_line_options(bool has_option,
|
||||
int i;
|
||||
|
||||
for (i = 0; vm_config_groups[i] != NULL; i++) {
|
||||
if (!has_option || !strcmp(option, vm_config_groups[i]->name)) {
|
||||
if (!option || !strcmp(option, vm_config_groups[i]->name)) {
|
||||
info = g_malloc0(sizeof(*info));
|
||||
info->option = g_strdup(vm_config_groups[i]->name);
|
||||
if (!strcmp("drive", vm_config_groups[i]->name)) {
|
||||
@ -263,7 +256,7 @@ CommandLineOptionInfoList *qmp_query_command_line_options(bool has_option,
|
||||
}
|
||||
}
|
||||
|
||||
if (!has_option || !strcmp(option, "machine")) {
|
||||
if (!option || !strcmp(option, "machine")) {
|
||||
info = g_malloc0(sizeof(*info));
|
||||
info->option = g_strdup("machine");
|
||||
info->parameters = query_option_descs(machine_opts.desc);
|
||||
|
Loading…
Reference in New Issue
Block a user