{error,warn}_report_once() are a special case of the new functions
and can simply switch to them.
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
---
include/qemu/error-report.h | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
index d2a6515e68..4e4c0e757c 100644
--- a/include/qemu/error-report.h
+++ b/include/qemu/error-report.h
@@ -58,10 +58,7 @@ void warn_report_once_cond(bool *printed, const char *fmt, ...)
static bool print_once_; \
bool ret_print_once_ = !print_once_; \
\
- if (!print_once_) { \
- print_once_ = true; \
- error_report(fmt, ##__VA_ARGS__); \
- } \
+ error_report_once_cond(&print_once_, fmt, ##__VA_ARGS__); \
unlikely(ret_print_once_); \
})
@@ -74,10 +71,7 @@ void warn_report_once_cond(bool *printed, const char *fmt, ...)
static bool print_once_; \
bool ret_print_once_ = !print_once_; \
\
- if (!print_once_) { \
- print_once_ = true; \
- warn_report(fmt, ##__VA_ARGS__); \
- } \
+ warn_report_once_cond(&print_once_, fmt, ##__VA_ARGS__); \
unlikely(ret_print_once_); \
})
--
2.14.4
Cornelia Huck <cohuck@redhat.com> writes:
> {error,warn}_report_once() are a special case of the new functions
> and can simply switch to them.
>
> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> ---
> include/qemu/error-report.h | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
> index d2a6515e68..4e4c0e757c 100644
> --- a/include/qemu/error-report.h
> +++ b/include/qemu/error-report.h
> @@ -58,10 +58,7 @@ void warn_report_once_cond(bool *printed, const char *fmt, ...)
> static bool print_once_; \
> bool ret_print_once_ = !print_once_; \
> \
> - if (!print_once_) { \
> - print_once_ = true; \
> - error_report(fmt, ##__VA_ARGS__); \
> - } \
> + error_report_once_cond(&print_once_, fmt, ##__VA_ARGS__); \
> unlikely(ret_print_once_); \
> })
>
> @@ -74,10 +71,7 @@ void warn_report_once_cond(bool *printed, const char *fmt, ...)
> static bool print_once_; \
> bool ret_print_once_ = !print_once_; \
> \
> - if (!print_once_) { \
> - print_once_ = true; \
> - warn_report(fmt, ##__VA_ARGS__); \
> - } \
> + warn_report_once_cond(&print_once_, fmt, ##__VA_ARGS__); \
> unlikely(ret_print_once_); \
> })
Hmm. The macros return a value, while the functions do not. Doesn't
this contradict the commit message's claim the macros are ä special case
of the new functions"?
If you make the functions return the value, too, the macros become
simpler. Moving complexity from macros to functions feels like a good
deal, even when it's just a little bit of complexity like here.
On Wed, 29 Aug 2018 18:12:32 +0200
Markus Armbruster <armbru@redhat.com> wrote:
> Cornelia Huck <cohuck@redhat.com> writes:
>
> > {error,warn}_report_once() are a special case of the new functions
> > and can simply switch to them.
> >
> > Signed-off-by: Cornelia Huck <cohuck@redhat.com>
> > ---
> > include/qemu/error-report.h | 10 ++--------
> > 1 file changed, 2 insertions(+), 8 deletions(-)
> >
> > diff --git a/include/qemu/error-report.h b/include/qemu/error-report.h
> > index d2a6515e68..4e4c0e757c 100644
> > --- a/include/qemu/error-report.h
> > +++ b/include/qemu/error-report.h
> > @@ -58,10 +58,7 @@ void warn_report_once_cond(bool *printed, const char *fmt, ...)
> > static bool print_once_; \
> > bool ret_print_once_ = !print_once_; \
> > \
> > - if (!print_once_) { \
> > - print_once_ = true; \
> > - error_report(fmt, ##__VA_ARGS__); \
> > - } \
> > + error_report_once_cond(&print_once_, fmt, ##__VA_ARGS__); \
> > unlikely(ret_print_once_); \
> > })
> >
> > @@ -74,10 +71,7 @@ void warn_report_once_cond(bool *printed, const char *fmt, ...)
> > static bool print_once_; \
> > bool ret_print_once_ = !print_once_; \
> > \
> > - if (!print_once_) { \
> > - print_once_ = true; \
> > - warn_report(fmt, ##__VA_ARGS__); \
> > - } \
> > + warn_report_once_cond(&print_once_, fmt, ##__VA_ARGS__); \
> > unlikely(ret_print_once_); \
> > })
>
> Hmm. The macros return a value, while the functions do not. Doesn't
> this contradict the commit message's claim the macros are ä special case
> of the new functions"?
>
> If you make the functions return the value, too, the macros become
> simpler. Moving complexity from macros to functions feels like a good
> deal, even when it's just a little bit of complexity like here.
Reducing macro complexity is a good idea, agreed.
Thanks for looking!
© 2016 - 2025 Red Hat, Inc.