qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, vsementsov@virtuozzo.com,
	berrange@redhat.com, ehabkost@redhat.com, qemu-block@nongnu.org,
	pbonzini@redhat.com
Subject: [PATCH 26/46] qapi: Smooth another visitor error checking pattern
Date: Wed, 24 Jun 2020 18:43:24 +0200	[thread overview]
Message-ID: <20200624164344.3778251-27-armbru@redhat.com> (raw)
In-Reply-To: <20200624164344.3778251-1-armbru@redhat.com>

Convert

    visit_type_FOO(v, ..., &ptr, &err);
    ...
    if (err) {
	...
    }

to

    visit_type_FOO(v, ..., &ptr, errp);
    ...
    if (!ptr) {
	...
    }

for functions that set @ptr to non-null / null on success / error.

Eliminate error_propagate() that are now unnecessary.  Delete @err
that are now unused.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 block/nfs.c          |  7 ++-----
 block/parallels.c    |  7 ++-----
 block/qcow.c         |  7 ++-----
 block/qcow2.c        |  7 ++-----
 block/qed.c          |  7 ++-----
 block/rbd.c          |  7 ++-----
 block/sheepdog.c     |  6 ++----
 block/ssh.c          |  7 ++-----
 block/vdi.c          |  7 ++-----
 block/vhdx.c         |  7 ++-----
 block/vpc.c          |  7 ++-----
 hw/acpi/core.c       |  4 ++--
 hw/block/xen-block.c |  6 ++----
 hw/core/numa.c       |  7 +++----
 monitor/monitor.c    | 21 +++++++--------------
 15 files changed, 36 insertions(+), 78 deletions(-)

diff --git a/block/nfs.c b/block/nfs.c
index b1718d125a..61a249a9fc 100644
--- a/block/nfs.c
+++ b/block/nfs.c
@@ -563,18 +563,15 @@ static BlockdevOptionsNfs *nfs_options_qdict_to_qapi(QDict *options,
     BlockdevOptionsNfs *opts = NULL;
     Visitor *v;
     const QDictEntry *e;
-    Error *local_err = NULL;
 
     v = qobject_input_visitor_new_flat_confused(options, errp);
     if (!v) {
         return NULL;
     }
 
-    visit_type_BlockdevOptionsNfs(v, NULL, &opts, &local_err);
+    visit_type_BlockdevOptionsNfs(v, NULL, &opts, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!opts) {
         return NULL;
     }
 
diff --git a/block/parallels.c b/block/parallels.c
index 0397f3894f..9e85ab995e 100644
--- a/block/parallels.c
+++ b/block/parallels.c
@@ -625,7 +625,6 @@ static int coroutine_fn parallels_co_create_opts(BlockDriver *drv,
                                                  Error **errp)
 {
     BlockdevCreateOptions *create_options = NULL;
-    Error *local_err = NULL;
     BlockDriverState *bs = NULL;
     QDict *qdict;
     Visitor *v;
@@ -668,11 +667,9 @@ static int coroutine_fn parallels_co_create_opts(BlockDriver *drv,
         goto done;
     }
 
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto done;
     }
diff --git a/block/qcow.c b/block/qcow.c
index eefa3b63da..1e134f3445 100644
--- a/block/qcow.c
+++ b/block/qcow.c
@@ -941,7 +941,6 @@ static int coroutine_fn qcow_co_create_opts(BlockDriver *drv,
     QDict *qdict;
     Visitor *v;
     const char *val;
-    Error *local_err = NULL;
     int ret;
 
     static const QDictRenames opt_renames[] = {
@@ -993,11 +992,9 @@ static int coroutine_fn qcow_co_create_opts(BlockDriver *drv,
         goto fail;
     }
 
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto fail;
     }
diff --git a/block/qcow2.c b/block/qcow2.c
index a9137a535b..9ed2396c88 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -3683,7 +3683,6 @@ static int coroutine_fn qcow2_co_create_opts(BlockDriver *drv,
     Visitor *v;
     BlockDriverState *bs = NULL;
     BlockDriverState *data_bs = NULL;
-    Error *local_err = NULL;
     const char *val;
     int ret;
 
@@ -3779,11 +3778,9 @@ static int coroutine_fn qcow2_co_create_opts(BlockDriver *drv,
         goto finish;
     }
 
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto finish;
     }
diff --git a/block/qed.c b/block/qed.c
index e369fd360a..7fa7f880f6 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -729,7 +729,6 @@ static int coroutine_fn bdrv_qed_co_create_opts(BlockDriver *drv,
     QDict *qdict;
     Visitor *v;
     BlockDriverState *bs = NULL;
-    Error *local_err = NULL;
     int ret;
 
     static const QDictRenames opt_renames[] = {
@@ -771,11 +770,9 @@ static int coroutine_fn bdrv_qed_co_create_opts(BlockDriver *drv,
         goto fail;
     }
 
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto fail;
     }
diff --git a/block/rbd.c b/block/rbd.c
index 617553b022..688074c64b 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -681,7 +681,6 @@ static int qemu_rbd_convert_options(QDict *options, BlockdevOptionsRbd **opts,
                                     Error **errp)
 {
     Visitor *v;
-    Error *local_err = NULL;
 
     /* Convert the remaining options into a QAPI object */
     v = qobject_input_visitor_new_flat_confused(options, errp);
@@ -689,11 +688,9 @@ static int qemu_rbd_convert_options(QDict *options, BlockdevOptionsRbd **opts,
         return -EINVAL;
     }
 
-    visit_type_BlockdevOptionsRbd(v, NULL, opts, &local_err);
+    visit_type_BlockdevOptionsRbd(v, NULL, opts, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!opts) {
         return -EINVAL;
     }
 
diff --git a/block/sheepdog.c b/block/sheepdog.c
index a6a91442c9..6c487c8322 100644
--- a/block/sheepdog.c
+++ b/block/sheepdog.c
@@ -2193,11 +2193,9 @@ static int coroutine_fn sd_co_create_opts(BlockDriver *drv,
         goto fail;
     }
 
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto fail;
     }
diff --git a/block/ssh.c b/block/ssh.c
index f00b89684a..ebe3d8b631 100644
--- a/block/ssh.c
+++ b/block/ssh.c
@@ -616,7 +616,6 @@ static BlockdevOptionsSsh *ssh_parse_options(QDict *options, Error **errp)
 {
     BlockdevOptionsSsh *result = NULL;
     QemuOpts *opts = NULL;
-    Error *local_err = NULL;
     const QDictEntry *e;
     Visitor *v;
 
@@ -636,11 +635,9 @@ static BlockdevOptionsSsh *ssh_parse_options(QDict *options, Error **errp)
         goto fail;
     }
 
-    visit_type_BlockdevOptionsSsh(v, NULL, &result, &local_err);
+    visit_type_BlockdevOptionsSsh(v, NULL, &result, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!result) {
         goto fail;
     }
 
diff --git a/block/vdi.c b/block/vdi.c
index 5fca67f52d..3a3df45f84 100644
--- a/block/vdi.c
+++ b/block/vdi.c
@@ -905,7 +905,6 @@ static int coroutine_fn vdi_co_create_opts(BlockDriver *drv,
     uint64_t block_size = DEFAULT_CLUSTER_SIZE;
     bool is_static = false;
     Visitor *v;
-    Error *local_err = NULL;
     int ret;
 
     /* Parse options and convert legacy syntax.
@@ -956,11 +955,9 @@ static int coroutine_fn vdi_co_create_opts(BlockDriver *drv,
         ret = -EINVAL;
         goto done;
     }
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto done;
     }
diff --git a/block/vhdx.c b/block/vhdx.c
index b9ef4ff074..1f9fca837d 100644
--- a/block/vhdx.c
+++ b/block/vhdx.c
@@ -2066,7 +2066,6 @@ static int coroutine_fn vhdx_co_create_opts(BlockDriver *drv,
     QDict *qdict;
     Visitor *v;
     BlockDriverState *bs = NULL;
-    Error *local_err = NULL;
     int ret;
 
     static const QDictRenames opt_renames[] = {
@@ -2107,11 +2106,9 @@ static int coroutine_fn vhdx_co_create_opts(BlockDriver *drv,
         goto fail;
     }
 
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto fail;
     }
diff --git a/block/vpc.c b/block/vpc.c
index 6d8a43aed9..259d0ad2fe 100644
--- a/block/vpc.c
+++ b/block/vpc.c
@@ -1095,7 +1095,6 @@ static int coroutine_fn vpc_co_create_opts(BlockDriver *drv,
     QDict *qdict;
     Visitor *v;
     BlockDriverState *bs = NULL;
-    Error *local_err = NULL;
     int ret;
 
     static const QDictRenames opt_renames[] = {
@@ -1134,11 +1133,9 @@ static int coroutine_fn vpc_co_create_opts(BlockDriver *drv,
         goto fail;
     }
 
-    visit_type_BlockdevCreateOptions(v, NULL, &create_options, &local_err);
+    visit_type_BlockdevCreateOptions(v, NULL, &create_options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!create_options) {
         ret = -EINVAL;
         goto fail;
     }
diff --git a/hw/acpi/core.c b/hw/acpi/core.c
index 45cbed49ab..91ae66b806 100644
--- a/hw/acpi/core.c
+++ b/hw/acpi/core.c
@@ -249,11 +249,11 @@ void acpi_table_add(const QemuOpts *opts, Error **errp)
         Visitor *v;
 
         v = opts_visitor_new(opts);
-        visit_type_AcpiTableOptions(v, NULL, &hdrs, &err);
+        visit_type_AcpiTableOptions(v, NULL, &hdrs, errp);
         visit_free(v);
     }
 
-    if (err) {
+    if (!hdrs) {
         goto out;
     }
     if (hdrs->has_file == hdrs->has_data) {
diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index 6ca6f18c7b..d45758937a 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -682,11 +682,9 @@ static char *xen_block_blockdev_add(const char *id, QDict *qdict,
     trace_xen_block_blockdev_add(node_name);
 
     v = qobject_input_visitor_new(QOBJECT(qdict));
-    visit_type_BlockdevOptions(v, NULL, &options, &local_err);
+    visit_type_BlockdevOptions(v, NULL, &options, errp);
     visit_free(v);
-
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!options) {
         goto fail;
     }
 
diff --git a/hw/core/numa.c b/hw/core/numa.c
index aa8c6be210..118803a0e8 100644
--- a/hw/core/numa.c
+++ b/hw/core/numa.c
@@ -509,10 +509,10 @@ static int parse_numa(void *opaque, QemuOpts *opts, Error **errp)
     Error *err = NULL;
     Visitor *v = opts_visitor_new(opts);
 
-    visit_type_NumaOptions(v, NULL, &object, &err);
+    visit_type_NumaOptions(v, NULL, &object, errp);
     visit_free(v);
-    if (err) {
-        goto end;
+    if (!object) {
+        return -1;
     }
 
     /* Fix up legacy suffix-less format */
@@ -523,7 +523,6 @@ static int parse_numa(void *opaque, QemuOpts *opts, Error **errp)
 
     set_numa_options(ms, object, &err);
 
-end:
     qapi_free_NumaOptions(object);
     if (err) {
         error_propagate(errp, err);
diff --git a/monitor/monitor.c b/monitor/monitor.c
index 125494410a..47167ac2a3 100644
--- a/monitor/monitor.c
+++ b/monitor/monitor.c
@@ -656,25 +656,18 @@ int monitor_init_opts(QemuOpts *opts, Error **errp)
 {
     Visitor *v;
     MonitorOptions *options;
-    Error *local_err = NULL;
+    int ret;
 
     v = opts_visitor_new(opts);
-    visit_type_MonitorOptions(v, NULL, &options, &local_err);
+    visit_type_MonitorOptions(v, NULL, &options, errp);
     visit_free(v);
-
-    if (local_err) {
-        goto out;
-    }
-
-    monitor_init(options, true, &local_err);
-    qapi_free_MonitorOptions(options);
-
-out:
-    if (local_err) {
-        error_propagate(errp, local_err);
+    if (!options) {
         return -1;
     }
-    return 0;
+
+    ret = monitor_init(options, true, errp);
+    qapi_free_MonitorOptions(options);
+    return ret;
 }
 
 QemuOptsList qemu_mon_opts = {
-- 
2.26.2



  parent reply	other threads:[~2020-06-24 16:58 UTC|newest]

Thread overview: 157+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-24 16:42 [PATCH 00/46] Less clumsy error checking Markus Armbruster
2020-06-24 16:42 ` [PATCH 01/46] error: Improve examples in error.h's big comment Markus Armbruster
2020-06-24 16:59   ` Eric Blake
2020-06-25 14:43   ` Vladimir Sementsov-Ogievskiy
2020-06-25 14:44   ` Greg Kurz
2020-06-25 15:28     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 02/46] error: Document Error API usage rules Markus Armbruster
2020-06-24 17:51   ` Eric Blake
2020-06-25  7:16   ` Vladimir Sementsov-Ogievskiy
2020-06-25 11:23     ` Markus Armbruster
2020-06-25 11:46       ` Vladimir Sementsov-Ogievskiy
2020-06-25 15:17   ` Greg Kurz
2020-06-25 15:30     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 03/46] qdev: Smooth error checking of qdev_realize() & friends Markus Armbruster
2020-06-24 18:03   ` Eric Blake
2020-06-25 11:36     ` Markus Armbruster
2020-06-25 12:39   ` Markus Armbruster
2020-06-25 19:00   ` Vladimir Sementsov-Ogievskiy
2020-06-26  6:19     ` Markus Armbruster
2020-07-02 14:56       ` Markus Armbruster
2020-07-03 10:41     ` Markus Armbruster
2020-06-29 10:40   ` Greg Kurz
2020-06-24 16:43 ` [PATCH 04/46] macio: Tidy up error handling in macio_newworld_realize() Markus Armbruster
2020-06-24 21:52   ` Eric Blake
2020-06-24 23:54   ` David Gibson
2020-06-25 19:09   ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 05/46] virtio-crypto-pci: Tidy up virtio_crypto_pci_realize() Markus Armbruster
2020-06-24 21:52   ` Eric Blake
2020-06-25 19:12   ` Vladimir Sementsov-Ogievskiy
2020-06-28  0:50   ` Gonglei (Arei)
2020-06-24 16:43 ` [PATCH 06/46] error: Avoid error_propagate() when error is not used here Markus Armbruster
2020-06-24 18:17   ` Eric Blake
2020-06-25 12:39     ` Markus Armbruster
2020-06-26 14:36   ` Vladimir Sementsov-Ogievskiy
2020-06-27 11:57     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 07/46] error: Avoid more " Markus Armbruster
2020-06-24 18:21   ` Eric Blake
2020-06-25 12:50     ` Markus Armbruster
2020-06-25 14:41       ` Eric Blake
2020-06-26 17:21   ` Vladimir Sementsov-Ogievskiy
2020-06-27 12:18     ` Markus Armbruster
2020-07-02 12:54       ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 08/46] error: Avoid unnecessary error_propagate() after error_setg() Markus Armbruster
2020-06-24 18:32   ` Eric Blake
2020-06-25 13:05     ` Markus Armbruster
2020-06-26 18:22   ` Vladimir Sementsov-Ogievskiy
2020-06-27 11:56     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 09/46] error: Avoid error_propagate() after migrate_add_blocker() Markus Armbruster
2020-06-24 19:34   ` Eric Blake
2020-06-29  8:29   ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 10/46] qemu-option: Check return value instead of @err where convenient Markus Armbruster
2020-06-24 19:36   ` Eric Blake
2020-06-29  9:11   ` Vladimir Sementsov-Ogievskiy
2020-07-01  8:02     ` Markus Armbruster
2020-07-02  9:28       ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 11/46] qemu-option: Make uses of find_desc_by_name() more similar Markus Armbruster
2020-06-24 19:37   ` Eric Blake
2020-06-29  9:25   ` Vladimir Sementsov-Ogievskiy
2020-06-29  9:36   ` Vladimir Sementsov-Ogievskiy
2020-06-29  9:47     ` Vladimir Sementsov-Ogievskiy
2020-07-01  8:07       ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 12/46] qemu-option: Factor out helper find_default_by_name() Markus Armbruster
2020-06-24 19:38   ` Eric Blake
2020-06-29  9:46   ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 13/46] qemu-option: Simplify around find_default_by_name() Markus Armbruster
2020-06-24 19:46   ` Eric Blake
2020-06-25 13:12     ` Markus Armbruster
2020-06-29 10:02       ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 14/46] qemu-option: Factor out helper opt_create() Markus Armbruster
2020-06-24 19:47   ` Eric Blake
2020-06-29 10:09   ` Vladimir Sementsov-Ogievskiy
2020-07-01  8:13     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 15/46] qemu-option: Tidy up opt_set() not to free arguments on failure Markus Armbruster
2020-06-24 19:50   ` Eric Blake
2020-06-29 10:37   ` Vladimir Sementsov-Ogievskiy
2020-07-01  9:01     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 16/46] qemu-option: Make functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 19:55   ` Eric Blake
2020-06-29 11:15   ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 17/46] qemu-option: Smooth error checking with Coccinelle Markus Armbruster
2020-06-24 20:08   ` Eric Blake
2020-06-25 13:33     ` Markus Armbruster
2020-06-29 13:58   ` Vladimir Sementsov-Ogievskiy
2020-06-24 16:43 ` [PATCH 18/46] qemu-option: Smooth error checking manually Markus Armbruster
2020-06-24 20:10   ` Eric Blake
2020-06-25 13:46     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 19/46] block: Avoid unnecessary error_propagate() after error_setg() Markus Armbruster
2020-06-24 20:12   ` Eric Blake
2020-06-24 16:43 ` [PATCH 20/46] block: Avoid error accumulation in bdrv_img_create() Markus Armbruster
2020-06-24 20:14   ` Eric Blake
2020-06-25 13:47     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 21/46] hmp: Eliminate a variable in hmp_migrate_set_parameter() Markus Armbruster
2020-06-24 20:15   ` Eric Blake
2020-06-24 16:43 ` [PATCH 22/46] qapi: Make visitor functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 20:43   ` Eric Blake
2020-06-25 14:56     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 23/46] qapi: Smooth error checking with Coccinelle Markus Armbruster
2020-06-24 20:50   ` Eric Blake
2020-06-25 15:03     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 24/46] qapi: Smooth error checking manually Markus Armbruster
2020-06-24 20:53   ` Eric Blake
2020-06-24 16:43 ` [PATCH 25/46] qapi: Smooth visitor error checking in generated code Markus Armbruster
2020-06-24 20:58   ` Eric Blake
2020-06-24 16:43 ` Markus Armbruster [this message]
2020-06-24 21:02   ` [PATCH 26/46] qapi: Smooth another visitor error checking pattern Eric Blake
2020-06-24 16:43 ` [PATCH 27/46] qapi: Purge error_propagate() from QAPI core Markus Armbruster
2020-06-24 21:03   ` Eric Blake
2020-06-24 16:43 ` [PATCH 28/46] block/parallels: Simplify parallels_open() after previous commit Markus Armbruster
2020-06-24 21:03   ` Eric Blake
2020-06-24 16:43 ` [PATCH 29/46] acpi: Avoid unnecessary error_propagate() after error_setg() Markus Armbruster
2020-06-24 21:04   ` Eric Blake
2020-06-24 16:43 ` [PATCH 30/46] s390x/pci: Fix harmless mistake in zpci's property fid's setter Markus Armbruster
2020-06-24 19:31   ` Matthew Rosato
2020-06-25  7:03   ` Cornelia Huck
2020-06-24 16:43 ` [PATCH 31/46] qom: Use error_reportf_err() instead of g_printerr() in examples Markus Armbruster
2020-06-24 21:05   ` Eric Blake
2020-06-24 16:43 ` [PATCH 32/46] qom: Rename qdev_get_type() to object_get_type() Markus Armbruster
2020-06-24 21:06   ` Eric Blake
2020-06-25  6:33   ` Philippe Mathieu-Daudé
2020-06-24 16:43 ` [PATCH 33/46] qom: Crash more nicely on object_property_get_link() failure Markus Armbruster
2020-06-24 21:07   ` Eric Blake
2020-06-25 15:05     ` Markus Armbruster
2020-07-02 12:11       ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 34/46] qom: Don't handle impossible " Markus Armbruster
2020-06-24 21:13   ` Eric Blake
2020-06-25  6:36   ` Philippe Mathieu-Daudé
2020-06-25 15:09     ` Markus Armbruster
2020-06-29 14:38       ` Philippe Mathieu-Daudé
2020-07-01  9:15         ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 35/46] qom: Use return values to check for error where that's simpler Markus Armbruster
2020-06-24 21:24   ` Eric Blake
2020-06-24 16:43 ` [PATCH 36/46] qom: Put name parameter before value / visitor parameter Markus Armbruster
2020-06-24 21:27   ` Eric Blake
2020-06-25 15:14     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 37/46] qom: Make functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 21:32   ` Eric Blake
2020-06-25 15:14     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 38/46] qom: Smooth error checking with Coccinelle Markus Armbruster
2020-06-24 21:35   ` Eric Blake
2020-06-24 16:43 ` [PATCH 39/46] qom: Smooth error checking manually Markus Armbruster
2020-06-24 21:38   ` Eric Blake
2020-06-24 16:43 ` [PATCH 40/46] qom: Make functions taking Error ** return bool, not 0/-1 Markus Armbruster
2020-06-24 21:40   ` Eric Blake
2020-06-24 16:43 ` [PATCH 41/46] qdev: Make functions taking Error ** return bool, not void Markus Armbruster
2020-06-24 21:40   ` Eric Blake
2020-06-24 16:43 ` [PATCH 42/46] qdev: Smooth error checking with Coccinelle Markus Armbruster
2020-06-24 21:41   ` Eric Blake
2020-06-24 16:43 ` [PATCH 43/46] qdev: Smooth error checking manually Markus Armbruster
2020-06-24 21:42   ` Eric Blake
2020-06-25 15:15     ` Markus Armbruster
2020-06-24 16:43 ` [PATCH 44/46] qemu-img: Ignore Error objects where the return value suffices Markus Armbruster
2020-06-24 21:49   ` Eric Blake
2020-06-24 16:43 ` [PATCH 45/46] qdev: " Markus Armbruster
2020-06-24 21:50   ` Eric Blake
2020-06-24 16:43 ` [PATCH 46/46] hmp: " Markus Armbruster
2020-06-24 21:51   ` Eric Blake
2020-06-24 16:58 ` [PATCH 00/46] Less clumsy error checking Paolo Bonzini

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=20200624164344.3778251-27-armbru@redhat.com \
    --to=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.com \
    /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).