[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/27] error: don't delay error message construction
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 09/27] error: don't delay error message construction |
Date: |
Fri, 27 Jul 2012 18:31:50 -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 5b7d67d..691d8a8 100644
--- a/qerror.c
+++ b/qerror.c
@@ -543,7 +543,6 @@ void qerror_report(const char *fmt, ...)
struct Error
{
QDict *obj;
- const char *fmt;
char *msg;
};
@@ -555,8 +554,7 @@ void qerror_report_err(Error *err)
loc_save(&qerr->loc);
QINCREF(err->obj);
qerr->error = err->obj;
-
- qerr->err_msg = qerror_format(err->fmt, qerr->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/27]: add new error format, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 01/27] monitor: drop unused monitor debug code, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 02/27] qerror: QERR_AMBIGUOUS_PATH: drop %(object) from human msg, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 03/27] qerror: QERR_DEVICE_ENCRYPTED: add filename info to human msg, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 04/27] qerror: reduce public exposure, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 05/27] qerror: drop qerror_abort(), Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 06/27] qerror: QError: drop file, linenr, func, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 07/27] qerror: qerror_format(): return an allocated string, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 08/27] qerror: don't delay error message construction, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 09/27] error: don't delay error message construction,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 10/27] qmp: query-block: add 'valid_encryption_key' field, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 11/27] hmp: hmp_cont(): don't rely on QERR_DEVICE_ENCRYPTED, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 12/27] hmp: hmp_change(): don't use error_get_field(), Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 13/27] error: error_is_type(): don't use error_get_field(), Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 15/27] block: block_int: include qerror.h, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 16/27] hmp: hmp.h: include qdict.h, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 17/27] qapi: qapi-types.h: don't include qapi/qapi-types-core.h, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 19/27] qapi: don't convert enum strings to lowercase, Luiz Capitulino, 2012/07/27
- [Qemu-devel] [PATCH 20/27] qapi-schema: add ErrorClass enum, Luiz Capitulino, 2012/07/27