error: Implement the warn and free Error functions

Implement warn_report_err() and warn_reportf_err() functions which
are the same as the error_report_err() and error_reportf_err()
functions except report a warning instead of an error.

Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <276ff93eadc0b01b8243cc61ffc331f77922c0d0.1499866456.git.alistair.francis@xilinx.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
Alistair Francis 2017-07-12 06:57:52 -07:00 committed by Markus Armbruster
parent c51c4f8807
commit e43ead1d0b
3 changed files with 32 additions and 0 deletions

View File

@ -266,11 +266,22 @@ void error_free(Error *err);
*/
void error_free_or_abort(Error **errp);
/*
* Convenience function to warn_report() and free @err.
*/
void warn_report_err(Error *err);
/*
* Convenience function to error_report() and free @err.
*/
void error_report_err(Error *err);
/*
* Convenience function to error_prepend(), warn_report() and free @err.
*/
void warn_reportf_err(Error *err, const char *fmt, ...)
GCC_FMT_ATTR(2, 3);
/*
* Convenience function to error_prepend(), error_report() and free @err.
*/

View File

@ -2533,6 +2533,7 @@ sub process {
error_setg_file_open|
error_set|
error_prepend|
warn_reportf_err|
error_reportf_err|
error_vreport|
warn_vreport|

View File

@ -232,6 +232,15 @@ void error_report_err(Error *err)
error_free(err);
}
void warn_report_err(Error *err)
{
warn_report("%s", error_get_pretty(err));
if (err->hint) {
error_printf_unless_qmp("%s", err->hint->str);
}
error_free(err);
}
void error_reportf_err(Error *err, const char *fmt, ...)
{
va_list ap;
@ -242,6 +251,17 @@ void error_reportf_err(Error *err, const char *fmt, ...)
error_report_err(err);
}
void warn_reportf_err(Error *err, const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
error_vprepend(&err, fmt, ap);
va_end(ap);
warn_report_err(err);
}
void error_free(Error *err)
{
if (err) {