qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: jsnow@redhat.com, eblake@redhat.com, michael.roth@amd.com,
	"Dr . David Alan Gilbert" <dgilbert@redhat.com>
Subject: [PATCH v3 17/30] qapi misc: Elide redundant has_FOO in generated C
Date: Fri,  4 Nov 2022 17:06:59 +0100	[thread overview]
Message-ID: <20221104160712.3005652-18-armbru@redhat.com> (raw)
In-Reply-To: <20221104160712.3005652-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>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 include/monitor/monitor.h |  3 +--
 monitor/hmp-cmds.c        |  2 +-
 monitor/misc.c            | 19 +++++--------------
 monitor/qmp-cmds.c        |  6 +-----
 softmmu/vl.c              |  2 +-
 util/qemu-config.c        | 17 +++++------------
 scripts/qapi/schema.py    |  1 -
 7 files changed, 14 insertions(+), 36 deletions(-)

diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h
index 737e750670..1e6f4c9bd7 100644
--- a/include/monitor/monitor.h
+++ b/include/monitor/monitor.h
@@ -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);
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index aa71fdba11..c5c8cb593e 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -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);
diff --git a/monitor/misc.c b/monitor/misc.c
index 78790306b1..77aa5f1650 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -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));
diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
index 81c8fdadf8..f8ab5dd50f 100644
--- a/monitor/qmp-cmds.c
+++ b/monitor/qmp-cmds.c
@@ -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;
 }
 
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 5115221efe..798e1dc933 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -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);
 
diff --git a/util/qemu-config.c b/util/qemu-config.c
index 5325f6bf80..95f61fc883 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);
     }
@@ -245,8 +239,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;
@@ -254,7 +247,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)) {
@@ -267,7 +260,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 ad5b665212..a34e25fdd7 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.3



  parent reply	other threads:[~2022-11-04 16:09 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-04 16:06 [PATCH v3 00/30] qapi: Elide redundant has_FOO in generated C Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 01/30] docs/devel/qapi-code-gen: Update example to match current code Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 02/30] qapi: Tidy up whitespace in generated code Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 03/30] docs/devel/qapi-code-gen: Extend example for next commit's change Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 04/30] qapi: Start to elide redundant has_FOO in generated C Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 05/30] qapi tests: Elide " Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 06/30] qapi acpi: " Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 07/30] qapi audio: " Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 08/30] blockdev: Clean up abuse of DriveBackup member format Markus Armbruster
2022-11-04 19:32   ` Eric Blake
2022-11-04 16:06 ` [PATCH v3 09/30] nbd/server: Clean up abuse of BlockExportOptionsNbd member @arg Markus Armbruster
2022-11-04 19:35   ` Eric Blake
2022-11-08 14:21   ` Vladimir Sementsov-Ogievskiy
2022-11-04 16:06 ` [PATCH v3 10/30] qapi block: Elide redundant has_FOO in generated C Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 11/30] qapi chardev: " Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 12/30] qapi crypto: " Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 13/30] qapi dump: " Markus Armbruster
2022-11-05 17:15   ` Philippe Mathieu-Daudé
2022-11-04 16:06 ` [PATCH v3 14/30] qapi job: " Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 15/30] qapi machine: " Markus Armbruster
2022-11-04 16:06 ` [PATCH v3 16/30] qapi migration: " Markus Armbruster
2022-11-04 16:06 ` Markus Armbruster [this message]
2022-11-04 16:07 ` [PATCH v3 18/30] qapi net: " Markus Armbruster
2022-11-05 17:03   ` Philippe Mathieu-Daudé
2022-11-04 16:07 ` [PATCH v3 19/30] qapi pci: " Markus Armbruster
2022-11-04 16:07 ` [PATCH v3 20/30] qapi qdev qom: " Markus Armbruster
2022-11-05 17:06   ` Philippe Mathieu-Daudé
2022-11-04 16:07 ` [PATCH v3 21/30] qapi replay: " Markus Armbruster
2022-11-04 16:07 ` [PATCH v3 22/30] qapi rocker: " Markus Armbruster
2022-11-05 17:08   ` Philippe Mathieu-Daudé
2022-11-04 16:07 ` [PATCH v3 23/30] qapi run-state: " Markus Armbruster
2022-11-04 16:07 ` [PATCH v3 24/30] qapi stats: " Markus Armbruster
2022-11-04 16:07 ` [PATCH v3 25/30] qapi tpm: " Markus Armbruster
2022-11-04 16:07 ` [PATCH v3 26/30] qapi transaction: " Markus Armbruster
2022-11-05 17:08   ` Philippe Mathieu-Daudé
2022-11-04 16:07 ` [PATCH v3 27/30] qapi ui: " Markus Armbruster
2022-11-04 16:07 ` [PATCH v3 28/30] qapi virtio: " Markus Armbruster
2022-11-04 16:07 ` [PATCH v3 29/30] qapi qga: " Markus Armbruster
2022-11-05 17:13   ` Philippe Mathieu-Daudé
2022-11-04 16:07 ` [PATCH v3 30/30] qapi: Drop temporary logic to support conversion step by step Markus Armbruster
2022-11-04 16:15 ` [PATCH v3 00/30] qapi: Elide redundant has_FOO in generated C Markus Armbruster

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=20221104160712.3005652-18-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).