[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 07/14] error: don't delay error message construction
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 07/14] error: don't delay error message construction |
Date: |
Wed, 25 Jul 2012 17:50:24 -0300 |
Today, the error message is only constructed when it's used. This commit
changes that to construct the error message when the error object is
built (ie. when the error is reported).
This simplifies the Error object.
Signed-off-by: Luiz Capitulino <address@hidden>
---
error.c | 8 +-------
qerror.c | 4 +---
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/error.c b/error.c
index b630b05..acb10a2 100644
--- a/error.c
+++ b/error.c
@@ -20,7 +20,6 @@
struct Error
{
QDict *obj;
- const char *fmt;
char *msg;
};
@@ -38,7 +37,7 @@ void error_set(Error **errp, const char *fmt, ...)
va_start(ap, fmt);
err->obj = qobject_to_qdict(qobject_from_jsonv(fmt, &ap));
va_end(ap);
- err->fmt = fmt;
+ err->msg = qerror_format(fmt, err->obj);
*errp = err;
}
@@ -49,7 +48,6 @@ Error *error_copy(const Error *err)
err_new = g_malloc0(sizeof(*err));
err_new->msg = g_strdup(err->msg);
- err_new->fmt = err->fmt;
err_new->obj = err->obj;
QINCREF(err_new->obj);
@@ -63,10 +61,6 @@ bool error_is_set(Error **errp)
const char *error_get_pretty(Error *err)
{
- if (err->msg == NULL) {
- err->msg = qerror_format(err->fmt, err->obj);
- }
-
return err->msg;
}
diff --git a/qerror.c b/qerror.c
index 89def8d..42e8687 100644
--- a/qerror.c
+++ b/qerror.c
@@ -257,7 +257,6 @@ void qerror_report(const char *fmt, ...)
struct Error
{
QDict *obj;
- const char *fmt;
char *msg;
};
@@ -270,8 +269,7 @@ void qerror_report_err(Error *err)
QINCREF(err->obj);
qerr->error = err->obj;
- qerr->err_msg = qerror_format(err->fmt, qerr->error);
- /* FIXME: should report UndefinedError on error */
+ qerr->err_msg = g_strdup(err->msg);
if (monitor_cur_is_qmp()) {
monitor_set_error(cur_mon, qerr);
--
1.7.11.2.249.g31c7954.dirty
- [Qemu-devel] [RFC 00/14]: add printf-like human msg to error_set(), Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 01/14] monitor: drop unused monitor debug code, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 02/14] qerror: reduce public exposure, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 03/14] qerror: drop qerror_abort(), Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 04/14] qerror: drop qerror_report_internal(), Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 05/14] qerror: qerror_format(): return an allocated string, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 06/14] qerror: don't delay error message construction, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 07/14] error: don't delay error message construction,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 08/14] qerror: add build_error_dict() and error_object_table[], Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 09/14] qerror: qerror_report(): take an index and a human error message, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 11/14] qerror: drop qerror_table[] for good, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 12/14] error: turn QERR_ macros into an enumeration, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 13/14] qerror: change all qerror_report() calls to use the ErrClass enum, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 10/14] error: error_set(): take an index and a human error message, Luiz Capitulino, 2012/07/25
- [Qemu-devel] [PATCH 14/14] error: change all error_set() calls to use the ErrClass enum, Luiz Capitulino, 2012/07/25
- Re: [Qemu-devel] [RFC 00/14]: add printf-like human msg to error_set(), Anthony Liguori, 2012/07/25