Message ID | 20191205152019.8454-4-vsementsov@virtuozzo.com |
---|---|
State | New |
Headers | show |
Series | error: prepare for auto propagated local_err | expand |
On Thu, 5 Dec 2019 18:20:01 +0300 Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> wrote: > Error **errp is almost always OUT-argument: it's assumed to be NULL, or > pointer to NULL-initialized pointer, or pointer to error_abort or > error_fatal, for callee to report error. > > But very few functions instead get Error **errp as IN-argument: > it's assumed to be set (or, maybe, NULL), and callee should clean it, > or add some information. > > In such cases, rename errp to errp_in. > This is no longer what the patch does. The subject needs to be amended too. > This patch updates only error API functions. There still a few > functions with errp-in semantics, they will be updated in further > commits. > > 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;
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;
Error **errp is almost always OUT-argument: it's assumed to be NULL, or pointer to NULL-initialized pointer, or pointer to error_abort or error_fatal, for callee to report error. But very few functions instead get Error **errp as IN-argument: it's assumed to be set (or, maybe, NULL), and callee should clean it, or add some information. In such cases, rename errp to errp_in. This patch updates only error API functions. There still a few functions with errp-in semantics, they will be updated in further commits. 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(-)