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:
Markus Armbruster 2022-11-04 17:06:59 +01:00
parent 720a252c26
commit 9492718b7c
7 changed files with 14 additions and 36 deletions

View file

@ -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);