From: Luiz Capitulino <lcapitulino@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, aliguori@us.ibm.com, armbru@redhat.com,
mdroth@linux.vnet.ibm.com, pbonzini@redhat.com,
eblake@redhat.com
Subject: [Qemu-devel] [PATCH 10/35] error: don't delay error message construction
Date: Tue, 7 Aug 2012 12:53:21 -0300 [thread overview]
Message-ID: <1344354826-10375-11-git-send-email-lcapitulino@redhat.com> (raw)
In-Reply-To: <1344354826-10375-1-git-send-email-lcapitulino@redhat.com>
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 <lcapitulino@redhat.com>
---
error.c | 8 +-------
qerror.c | 4 +---
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/error.c b/error.c
index 3a62592..2ade99b 100644
--- a/error.c
+++ b/error.c
@@ -20,7 +20,6 @@
struct Error
{
QDict *obj;
- const char *fmt;
char *msg;
};
@@ -39,7 +38,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;
}
@@ -50,7 +49,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);
@@ -64,10 +62,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 a254f88..5d38428 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
next prev parent reply other threads:[~2012-08-07 15:53 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-07 15:53 [Qemu-devel] [PATCH v2 00/35]: add new error format Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 01/35] monitor: drop unused monitor debug code Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 02/35] qerror: QERR_AMBIGUOUS_PATH: drop %(object) from human msg Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 03/35] qerror: QERR_DEVICE_ENCRYPTED: change error message Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 04/35] qerror: reduce public exposure Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 05/35] qerror: drop qerror_abort() Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 06/35] qerror: avoid passing qerr pointer Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 07/35] qerror: QError: drop file, linenr, func Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 08/35] qerror: qerror_format(): return an allocated string Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 09/35] qerror: don't delay error message construction Luiz Capitulino
2012-08-07 15:53 ` Luiz Capitulino [this message]
2012-08-07 15:53 ` [Qemu-devel] [PATCH 11/35] qmp: query-block: add 'valid_encryption_key' field Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 12/35] hmp: hmp_cont(): don't rely on QERR_DEVICE_ENCRYPTED Luiz Capitulino
2012-08-10 8:43 ` Markus Armbruster
2012-08-07 15:53 ` [Qemu-devel] [PATCH 13/35] hmp_change(): don't access DeviceEncrypted's data Luiz Capitulino
2012-08-10 9:02 ` Markus Armbruster
2012-08-10 14:36 ` Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 14/35] net: inet_connect(), inet_connect_opts(): add in_progress argument Luiz Capitulino
2012-08-10 9:07 ` Markus Armbruster
2012-08-10 14:47 ` Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 15/35] migration: don't rely on any QERR_SOCKET_* Luiz Capitulino
2012-08-10 9:13 ` Markus Armbruster
2012-08-10 14:49 ` Luiz Capitulino
2012-08-14 11:19 ` Juan Quintela
2012-08-14 11:35 ` Markus Armbruster
2012-08-14 13:06 ` Luiz Capitulino
2012-08-14 13:09 ` Juan Quintela
2012-08-07 15:53 ` [Qemu-devel] [PATCH 16/35] qerror: drop QERR_SOCKET_CONNECT_IN_PROGRESS Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 17/35] block: block_int: include qerror.h Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 18/35] hmp: hmp.h: include qdict.h Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 19/35] qapi: qapi-types.h: don't include qapi/qapi-types-core.h Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 20/35] qapi: generate correct enum names for camel case enums Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 21/35] qapi: don't convert enum strings to lowercase Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 22/35] qapi-schema: add ErrorClass enum Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 23/35] qerror: qerror_table: don't use C99 struct initializers Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 24/35] error, qerror: add ErrorClass argument to error functions Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 25/35] qerror: add proper ErrorClass value for QERR_ macros Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 26/35] error: add error_get_class() Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 27/35] hmp: hmp_change(): use error_get_class() Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 28/35] error: drop unused functions Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 29/35] qmp: switch to the new error format on the wire Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 30/35] qemu-ga: " Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 31/35] error: drop error_get_qobject()/error_set_qobject() Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 32/35] error, qerror: pass desc string to error calls Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 33/35] qerror: drop qerror_table and qerror_format() Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 34/35] error, qerror: drop QDict member Luiz Capitulino
2012-08-07 15:53 ` [Qemu-devel] [PATCH 35/35] docs: writing-qmp-commands.txt: update error section Luiz Capitulino
2012-08-08 12:35 ` Pavel Hrdina
2012-08-08 13:26 ` Luiz Capitulino
-- strict thread matches above, loose matches on Subject: below --
2012-08-10 17:43 [Qemu-devel] [PATCH v3 00/35]: add new error format Luiz Capitulino
2012-08-10 17:43 ` [Qemu-devel] [PATCH 10/35] error: don't delay error message construction Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1344354826-10375-11-git-send-email-lcapitulino@redhat.com \
--to=lcapitulino@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).