All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: michael.roth@amd.com, jsnow@redhat.com, eblake@redhat.com,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Daniel P . Berrangé" <berrange@redhat.com>,
	"Eduardo Habkost" <eduardo@habkost.net>
Subject: [PATCH 18/27] qapi qdev qom: Elide redundant has_FOO in generated C
Date: Thu, 15 Sep 2022 22:43:08 +0200	[thread overview]
Message-ID: <20220915204317.3766007-19-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/qdev.json and
qapi/qom.json.

Said commit explains the transformation in more detail.  The invariant
violations mentioned there do not occur here.

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Daniel P. Berrangé <berrange@redhat.com>
Cc: Eduardo Habkost <eduardo@habkost.net>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 hw/acpi/memory_hotplug.c    | 2 +-
 hw/core/qdev.c              | 2 +-
 hw/ppc/spapr.c              | 2 +-
 hw/ppc/spapr_drc.c          | 3 +--
 qom/qom-qmp-cmds.c          | 7 +------
 tests/qtest/fuzz/qos_fuzz.c | 3 +--
 scripts/qapi/schema.py      | 2 --
 7 files changed, 6 insertions(+), 15 deletions(-)

diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
index a7476330a8..d926f4f77d 100644
--- a/hw/acpi/memory_hotplug.c
+++ b/hw/acpi/memory_hotplug.c
@@ -185,7 +185,7 @@ static void acpi_memory_hotplug_write(void *opaque, hwaddr addr, uint64_t data,
                  */
                 qapi_event_send_mem_unplug_error(dev->id ? : "",
                                                  error_get_pretty(local_err));
-                qapi_event_send_device_unplug_guest_error(!!dev->id, dev->id,
+                qapi_event_send_device_unplug_guest_error(dev->id,
                                                           dev->canonical_path);
                 error_free(local_err);
                 break;
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 0806d8fcaa..459266aceb 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -744,7 +744,7 @@ static void device_finalize(Object *obj)
     if (dev->pending_deleted_event) {
         g_assert(dev->canonical_path);
 
-        qapi_event_send_device_deleted(!!dev->id, dev->id, dev->canonical_path);
+        qapi_event_send_device_deleted(dev->id, dev->canonical_path);
         g_free(dev->canonical_path);
         dev->canonical_path = NULL;
     }
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index fb790b61e4..b5f638a090 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3725,7 +3725,7 @@ void spapr_memory_unplug_rollback(SpaprMachineState *spapr, DeviceState *dev)
 
     qapi_event_send_mem_unplug_error(dev->id ? : "", qapi_error);
 
-    qapi_event_send_device_unplug_guest_error(!!dev->id, dev->id,
+    qapi_event_send_device_unplug_guest_error(dev->id,
                                               dev->canonical_path);
 }
 
diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c
index 76bc5d42a0..4923435a8b 100644
--- a/hw/ppc/spapr_drc.c
+++ b/hw/ppc/spapr_drc.c
@@ -175,8 +175,7 @@ static uint32_t drc_unisolate_logical(SpaprDrc *drc)
                              "for device %s", drc->dev->id);
             }
 
-            qapi_event_send_device_unplug_guest_error(!!drc->dev->id,
-                                                      drc->dev->id,
+            qapi_event_send_device_unplug_guest_error(drc->dev->id,
                                                       drc->dev->canonical_path);
         }
 
diff --git a/qom/qom-qmp-cmds.c b/qom/qom-qmp-cmds.c
index 2e63a4c184..7c087299de 100644
--- a/qom/qom-qmp-cmds.c
+++ b/qom/qom-qmp-cmds.c
@@ -99,15 +99,13 @@ static void qom_list_types_tramp(ObjectClass *klass, void *data)
     info->name = g_strdup(object_class_get_name(klass));
     info->has_abstract = info->abstract = object_class_is_abstract(klass);
     if (parent) {
-        info->has_parent = true;
         info->parent = g_strdup(object_class_get_name(parent));
     }
 
     QAPI_LIST_PREPEND(*pret, info);
 }
 
-ObjectTypeInfoList *qmp_qom_list_types(bool has_implements,
-                                       const char *implements,
+ObjectTypeInfoList *qmp_qom_list_types(const char *implements,
                                        bool has_abstract,
                                        bool abstract,
                                        Error **errp)
@@ -168,10 +166,8 @@ ObjectPropertyInfoList *qmp_device_list_properties(const char *typename,
         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);
         info->default_value = qobject_ref(prop->defval);
-        info->has_default_value = !!info->default_value;
 
         QAPI_LIST_PREPEND(prop_list, info);
     }
@@ -215,7 +211,6 @@ ObjectPropertyInfoList *qmp_qom_list_properties(const char *typename,
         info = g_malloc0(sizeof(*info));
         info->name = g_strdup(prop->name);
         info->type = g_strdup(prop->type);
-        info->has_description = !!prop->description;
         info->description = g_strdup(prop->description);
 
         QAPI_LIST_PREPEND(prop_list, info);
diff --git a/tests/qtest/fuzz/qos_fuzz.c b/tests/qtest/fuzz/qos_fuzz.c
index 3a3d9c16dd..e403d373a0 100644
--- a/tests/qtest/fuzz/qos_fuzz.c
+++ b/tests/qtest/fuzz/qos_fuzz.c
@@ -50,8 +50,7 @@ static void qos_set_machines_devices_available(void)
     machines_apply_to_node(mach_info);
     qapi_free_MachineInfoList(mach_info);
 
-    type_info = qmp_qom_list_types(true, "device", true, true,
-                                   &error_abort);
+    type_info = qmp_qom_list_types("device", true, true, &error_abort);
     types_apply_to_node(type_info);
     qapi_free_ObjectTypeInfoList(type_info);
 }
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index b2a568e12d..d92fd3b4d6 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -759,8 +759,6 @@ def need_has(self):
         assert self.type
         # Temporary hack to support dropping the has_FOO in reviewable chunks
         opt_out = [
-            'qapi/qdev.json',
-            'qapi/qom.json',
             'qapi/replay.json',
             'qapi/rocker.json',
             'qapi/run-state.json',
-- 
2.37.2



  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 ` [PATCH 15/27] qapi misc: " Markus Armbruster
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 ` Markus Armbruster [this message]
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-19-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=eblake@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=jsnow@redhat.com \
    --cc=michael.roth@amd.com \
    --cc=pbonzini@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.