qerror: QError: drop file, linenr, func
They have never been fully used and conflict with future error improvements. Also makes qerror_report() a proper function, as there's no point in having it as a macro anymore. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
f2dd1d69ed
commit
5f0f0e13e1
20
qerror.c
20
qerror.c
@ -404,27 +404,14 @@ static const QErrorStringTable *get_desc_no_fail(const char *fmt)
|
|||||||
/**
|
/**
|
||||||
* qerror_from_info(): Create a new QError from error information
|
* qerror_from_info(): Create a new QError from error information
|
||||||
*
|
*
|
||||||
* The information consists of:
|
|
||||||
*
|
|
||||||
* - file the file name of where the error occurred
|
|
||||||
* - linenr the line number of where the error occurred
|
|
||||||
* - func the function name of where the error occurred
|
|
||||||
* - fmt JSON printf-like dictionary, there must exist keys 'class' and
|
|
||||||
* 'data'
|
|
||||||
* - va va_list of all arguments specified by fmt
|
|
||||||
*
|
|
||||||
* Return strong reference.
|
* Return strong reference.
|
||||||
*/
|
*/
|
||||||
static QError *qerror_from_info(const char *file, int linenr, const char *func,
|
static QError *qerror_from_info(const char *fmt, va_list *va)
|
||||||
const char *fmt, va_list *va)
|
|
||||||
{
|
{
|
||||||
QError *qerr;
|
QError *qerr;
|
||||||
|
|
||||||
qerr = qerror_new();
|
qerr = qerror_new();
|
||||||
loc_save(&qerr->loc);
|
loc_save(&qerr->loc);
|
||||||
qerr->linenr = linenr;
|
|
||||||
qerr->file = file;
|
|
||||||
qerr->func = func;
|
|
||||||
|
|
||||||
qerr->error = error_obj_from_fmt_no_fail(fmt, va);
|
qerr->error = error_obj_from_fmt_no_fail(fmt, va);
|
||||||
qerr->entry = get_desc_no_fail(fmt);
|
qerr->entry = get_desc_no_fail(fmt);
|
||||||
@ -545,14 +532,13 @@ static void qerror_print(QError *qerror)
|
|||||||
QDECREF(qstring);
|
QDECREF(qstring);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qerror_report_internal(const char *file, int linenr, const char *func,
|
void qerror_report(const char *fmt, ...)
|
||||||
const char *fmt, ...)
|
|
||||||
{
|
{
|
||||||
va_list va;
|
va_list va;
|
||||||
QError *qerror;
|
QError *qerror;
|
||||||
|
|
||||||
va_start(va, fmt);
|
va_start(va, fmt);
|
||||||
qerror = qerror_from_info(file, linenr, func, fmt, &va);
|
qerror = qerror_from_info(fmt, &va);
|
||||||
va_end(va);
|
va_end(va);
|
||||||
|
|
||||||
if (monitor_cur_is_qmp()) {
|
if (monitor_cur_is_qmp()) {
|
||||||
|
8
qerror.h
8
qerror.h
@ -27,20 +27,14 @@ typedef struct QError {
|
|||||||
QObject_HEAD;
|
QObject_HEAD;
|
||||||
QDict *error;
|
QDict *error;
|
||||||
Location loc;
|
Location loc;
|
||||||
int linenr;
|
|
||||||
const char *file;
|
|
||||||
const char *func;
|
|
||||||
const QErrorStringTable *entry;
|
const QErrorStringTable *entry;
|
||||||
} QError;
|
} QError;
|
||||||
|
|
||||||
QString *qerror_human(const QError *qerror);
|
QString *qerror_human(const QError *qerror);
|
||||||
void qerror_report_internal(const char *file, int linenr, const char *func,
|
void qerror_report(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
|
||||||
const char *fmt, ...) GCC_FMT_ATTR(4, 5);
|
|
||||||
void qerror_report_err(Error *err);
|
void qerror_report_err(Error *err);
|
||||||
void assert_no_error(Error *err);
|
void assert_no_error(Error *err);
|
||||||
QString *qerror_format(const char *fmt, QDict *error);
|
QString *qerror_format(const char *fmt, QDict *error);
|
||||||
#define qerror_report(fmt, ...) \
|
|
||||||
qerror_report_internal(__FILE__, __LINE__, __func__, fmt, ## __VA_ARGS__)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* QError class list
|
* QError class list
|
||||||
|
Loading…
x
Reference in New Issue
Block a user