From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: michael.roth@amd.com, jsnow@redhat.com, eblake@redhat.com,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>
Subject: [PATCH 15/27] qapi misc: Elide redundant has_FOO in generated C
Date: Thu, 15 Sep 2022 22:43:05 +0200 [thread overview]
Message-ID: <20220915204317.3766007-16-armbru@redhat.com> (raw)
In-Reply-To: <20220915204317.3766007-1-armbru@redhat.com>
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>
---
include/monitor/monitor.h | 3 +--
monitor/hmp-cmds.c | 2 +-
monitor/misc.c | 19 +++++--------------
monitor/qmp-cmds.c | 1 -
softmmu/vl.c | 2 +-
util/qemu-config.c | 17 +++++------------
scripts/qapi/schema.py | 1 -
7 files changed, 13 insertions(+), 32 deletions(-)
diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h
index a4b40e8391..be1a18a6b6 100644
--- a/include/monitor/monitor.h
+++ b/include/monitor/monitor.h
@@ -45,8 +45,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);
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index 6ed9628071..b0902a37c8 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -102,7 +102,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);
diff --git a/monitor/misc.c b/monitor/misc.c
index f18ae681da..c174ef1f3e 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -1125,7 +1125,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;
@@ -1138,8 +1138,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;
}
@@ -1207,12 +1206,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);
}
@@ -1224,8 +1218,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;
@@ -1293,9 +1286,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));
diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
index 7314cd813d..672fc5d1cc 100644
--- a/monitor/qmp-cmds.c
+++ b/monitor/qmp-cmds.c
@@ -51,7 +51,6 @@ 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);
}
diff --git a/softmmu/vl.c b/softmmu/vl.c
index dea4005e47..58bcf21b98 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -613,7 +613,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);
diff --git a/util/qemu-config.c b/util/qemu-config.c
index 433488aa56..2467a07bd7 100644
--- a/util/qemu-config.c
+++ b/util/qemu-config.c
@@ -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);
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 94f97be53c..105df66da5 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -759,7 +759,6 @@ def need_has(self):
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',
--
2.37.2
next prev parent reply other threads:[~2022-09-15 20:57 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-15 20:42 [PATCH 00/27] qapi: Elide redundant has_FOO in generated C Markus Armbruster
2022-09-15 20:42 ` [PATCH 01/27] docs/devel/qapi-code-gen: Update example to match current code Markus Armbruster
2022-09-16 8:38 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 02/27] qapi: Tidy up whitespace in generated code Markus Armbruster
2022-09-16 8:44 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 03/27] docs/devel/qapi-code-gen: Extend example for next commit's change Markus Armbruster
2022-09-16 8:47 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 04/27] qapi: Start to elide redundant has_FOO in generated C Markus Armbruster
2022-09-16 8:50 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 05/27] qapi tests: Elide " Markus Armbruster
2022-09-16 8:54 ` Daniel P. Berrangé
2022-09-16 10:36 ` Markus Armbruster
2022-09-15 20:42 ` [PATCH 06/27] qapi acpi: " Markus Armbruster
2022-09-16 7:50 ` Igor Mammedov
2022-09-16 8:00 ` Ani Sinha
2022-09-16 8:18 ` Markus Armbruster
2022-09-16 8:21 ` Ani Sinha
2022-09-16 8:37 ` Daniel P. Berrangé
2022-09-16 8:45 ` Ani Sinha
2022-09-16 9:32 ` Ani Sinha
2022-09-16 9:35 ` Markus Armbruster
2022-09-16 8:59 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 07/27] qapi audio: " Markus Armbruster
2022-09-16 9:13 ` Daniel P. Berrangé
2022-09-15 20:42 ` [PATCH 08/27] qapi block: " Markus Armbruster
2022-09-15 20:42 ` [PATCH 09/27] qapi char: " Markus Armbruster
2022-09-16 9:09 ` Daniel P. Berrangé
2022-09-15 20:43 ` [PATCH 10/27] qapi crypto: " Markus Armbruster
2022-09-16 9:02 ` Daniel P. Berrangé
2022-09-15 20:43 ` [PATCH 11/27] qapi dump: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 12/27] qapi job: " Markus Armbruster
2022-09-16 8:42 ` Vladimir Sementsov-Ogievskiy
2022-09-15 20:43 ` [PATCH 13/27] qapi machine: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 14/27] qapi migration: " Markus Armbruster
2022-09-22 11:28 ` Dr. David Alan Gilbert
2022-09-22 12:40 ` Daniel P. Berrangé
2022-09-22 13:15 ` Philippe Mathieu-Daudé via
2022-09-22 13:36 ` Markus Armbruster
2022-09-15 20:43 ` Markus Armbruster [this message]
2022-09-15 20:43 ` [PATCH 16/27] qapi net: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 17/27] qapi pci: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 18/27] qapi qdev qom: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 19/27] qapi replay: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 20/27] qapi rocker: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 21/27] qapi run-state: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 22/27] qapi stats: " Markus Armbruster
2022-09-16 14:29 ` Mark Kanda
2022-09-15 20:43 ` [PATCH 23/27] qapi tpm: " Markus Armbruster
2022-09-15 21:12 ` Stefan Berger
2022-09-15 20:43 ` [PATCH 24/27] qapi transaction: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 25/27] qapi ui: " Markus Armbruster
2022-09-16 9:04 ` Daniel P. Berrangé
2022-09-15 20:43 ` [PATCH 26/27] qapi qga: " Markus Armbruster
2022-09-15 20:43 ` [PATCH 27/27] qapi: Drop temporary logic to support conversion step by step Markus Armbruster
2022-09-16 9:04 ` Daniel P. Berrangé
2022-09-16 8:42 ` [PATCH 00/27] qapi: Elide redundant has_FOO in generated C Vladimir Sementsov-Ogievskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220915204317.3766007-16-armbru@redhat.com \
--to=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=jsnow@redhat.com \
--cc=michael.roth@amd.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).