qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
To: qemu-devel@nongnu.org
Cc: vsementsov@virtuozzo.com, armbru@redhat.com,
	Michael Roth <mdroth@linux.vnet.ibm.com>
Subject: [PATCH v8 03/21] error: make Error **errp const where it is appropriate
Date: Thu,  5 Dec 2019 20:46:17 +0300	[thread overview]
Message-ID: <20191205174635.18758-4-vsementsov@virtuozzo.com> (raw)
In-Reply-To: <20191205174635.18758-1-vsementsov@virtuozzo.com>

Mostly, Error ** is for returning error from the function, so the
callee sets it. However these three functions get already filled errp
parameter. They dont change the pointer itself, only change the
internal state of referenced Error object. So we can make it
Error *const * errp, to stress the behavior. It will also help
coccinelle script (in future) to distinguish such cases from common
errp usage.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
 include/qapi/error.h | 6 +++---
 util/error.c         | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/include/qapi/error.h b/include/qapi/error.h
index 3f95141a01..ad5b6e896d 100644
--- a/include/qapi/error.h
+++ b/include/qapi/error.h
@@ -233,13 +233,13 @@ void error_propagate_prepend(Error **dst_errp, Error *local_err,
  * Prepend some text to @errp's human-readable error message.
  * The text is made by formatting @fmt, @ap like vprintf().
  */
-void error_vprepend(Error **errp, const char *fmt, va_list ap);
+void error_vprepend(Error *const *errp, const char *fmt, va_list ap);
 
 /*
  * Prepend some text to @errp's human-readable error message.
  * The text is made by formatting @fmt, ... like printf().
  */
-void error_prepend(Error **errp, const char *fmt, ...)
+void error_prepend(Error *const *errp, const char *fmt, ...)
     GCC_FMT_ATTR(2, 3);
 
 /*
@@ -256,7 +256,7 @@ void error_prepend(Error **errp, const char *fmt, ...)
  * May be called multiple times.  The resulting hint should end with a
  * newline.
  */
-void error_append_hint(Error **errp, const char *fmt, ...)
+void error_append_hint(Error *const *errp, const char *fmt, ...)
     GCC_FMT_ATTR(2, 3);
 
 /*
diff --git a/util/error.c b/util/error.c
index d4532ce318..b6c89d1412 100644
--- a/util/error.c
+++ b/util/error.c
@@ -121,7 +121,7 @@ void error_setg_file_open_internal(Error **errp,
                               "Could not open '%s'", filename);
 }
 
-void error_vprepend(Error **errp, const char *fmt, va_list ap)
+void error_vprepend(Error *const *errp, const char *fmt, va_list ap)
 {
     GString *newmsg;
 
@@ -136,7 +136,7 @@ void error_vprepend(Error **errp, const char *fmt, va_list ap)
     (*errp)->msg = g_string_free(newmsg, 0);
 }
 
-void error_prepend(Error **errp, const char *fmt, ...)
+void error_prepend(Error *const *errp, const char *fmt, ...)
 {
     va_list ap;
 
@@ -145,7 +145,7 @@ void error_prepend(Error **errp, const char *fmt, ...)
     va_end(ap);
 }
 
-void error_append_hint(Error **errp, const char *fmt, ...)
+void error_append_hint(Error *const *errp, const char *fmt, ...)
 {
     va_list ap;
     int saved_errno = errno;
-- 
2.21.0



  parent reply	other threads:[~2019-12-05 17:57 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-05 17:46 [PATCH v8 00/21] error: prepare for auto propagated local_err Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` [PATCH v8 01/21] hw/core/loader-fit: fix freeing errp in fit_load_fdt Vladimir Sementsov-Ogievskiy
2019-12-06  7:41   ` Philippe Mathieu-Daudé
2019-12-05 17:46 ` [PATCH v8 02/21] net/net: Clean up variable shadowing in net_client_init() Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` Vladimir Sementsov-Ogievskiy [this message]
2019-12-06  7:28   ` [PATCH v8 03/21] error: make Error **errp const where it is appropriate Philippe Mathieu-Daudé
2019-12-06 15:49   ` Markus Armbruster
2019-12-05 17:46 ` [PATCH v8 04/21] hmp: drop Error pointer indirection in hmp_handle_error Vladimir Sementsov-Ogievskiy
2019-12-06  7:29   ` Philippe Mathieu-Daudé
2019-12-05 17:46 ` [PATCH v8 05/21] vnc: drop Error pointer indirection in vnc_client_io_error Vladimir Sementsov-Ogievskiy
2019-12-06  7:30   ` Philippe Mathieu-Daudé
2019-12-05 17:46 ` [PATCH v8 06/21] qdev-monitor: well form error hint helpers Vladimir Sementsov-Ogievskiy
2019-12-05 18:17   ` Eric Blake
2019-12-05 18:18     ` Eric Blake
2019-12-06  7:31   ` Philippe Mathieu-Daudé
2019-12-06 15:53   ` Markus Armbruster
2019-12-10  7:14     ` Markus Armbruster
2019-12-05 17:46 ` [PATCH v8 07/21] ppc: well form kvmppc_hint_smt_possible error hint helper Vladimir Sementsov-Ogievskiy
2019-12-06  0:03   ` David Gibson
2019-12-10  7:19   ` Markus Armbruster
2019-12-05 17:46 ` [PATCH v8 08/21] 9pfs: well form error hint helpers Vladimir Sementsov-Ogievskiy
2019-12-10  7:29   ` Markus Armbruster
2019-12-05 17:46 ` [PATCH v8 09/21] hw/core/qdev: cleanup Error ** variables Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` [PATCH v8 10/21] block/snapshot: rename Error ** parameter to more common errp Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` [PATCH v8 11/21] hw/i386/amd_iommu: " Vladimir Sementsov-Ogievskiy
2019-12-06  7:36   ` Philippe Mathieu-Daudé
2019-12-05 17:46 ` [PATCH v8 12/21] qga: " Vladimir Sementsov-Ogievskiy
2019-12-06  7:37   ` Philippe Mathieu-Daudé
2019-12-06 15:55   ` Markus Armbruster
2019-12-05 17:46 ` [PATCH v8 13/21] monitor/qmp-cmds: " Vladimir Sementsov-Ogievskiy
2019-12-06  7:37   ` Philippe Mathieu-Daudé
2019-12-05 17:46 ` [PATCH v8 14/21] hw/s390x: " Vladimir Sementsov-Ogievskiy
2019-12-06  7:37   ` Philippe Mathieu-Daudé
2019-12-06 10:16   ` David Hildenbrand
2019-12-05 17:46 ` [PATCH v8 15/21] hw/sd: drop extra whitespace in sdhci_sysbus_realize() header Vladimir Sementsov-Ogievskiy
2019-12-06  7:38   ` Philippe Mathieu-Daudé
2019-12-05 17:46 ` [PATCH v8 16/21] hw/tpm: rename Error ** parameter to more common errp Vladimir Sementsov-Ogievskiy
2019-12-06  7:38   ` Philippe Mathieu-Daudé
2019-12-05 17:46 ` [PATCH v8 17/21] hw/usb: " Vladimir Sementsov-Ogievskiy
2019-12-06  7:38   ` Philippe Mathieu-Daudé
2019-12-06 10:19     ` Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` [PATCH v8 18/21] include/qom/object.h: " Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` [PATCH v8 19/21] backends/cryptodev: drop local_err from cryptodev_backend_complete() Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` [PATCH v8 20/21] hw/vfio/ap: drop local_err from vfio_ap_realize Vladimir Sementsov-Ogievskiy
2019-12-05 17:46 ` [PATCH v8 21/21] nbd: assert that Error** is not NULL in nbd_iter_channel_error Vladimir Sementsov-Ogievskiy
2019-12-05 17:51   ` Eric Blake
2019-12-06 15:58     ` Markus Armbruster
2019-12-06 18:19       ` Vladimir Sementsov-Ogievskiy
2019-12-10  9:05         ` 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=20191205174635.18758-4-vsementsov@virtuozzo.com \
    --to=vsementsov@virtuozzo.com \
    --cc=armbru@redhat.com \
    --cc=mdroth@linux.vnet.ibm.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).