[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 06/35] qerror: avoid passing qerr pointer
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [PATCH 06/35] qerror: avoid passing qerr pointer |
Date: |
Fri, 10 Aug 2012 14:43:44 -0300 |
Helps dropping/modifying qerror functions.
Signed-off-by: Luiz Capitulino <address@hidden>
---
qerror.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/qerror.c b/qerror.c
index 7cb7c12..e717496 100644
--- a/qerror.c
+++ b/qerror.c
@@ -346,10 +346,10 @@ static QError *qerror_new(void)
return qerr;
}
-static void GCC_FMT_ATTR(2, 0) qerror_set_data(QError *qerr,
- const char *fmt, va_list *va)
+static QDict *error_obj_from_fmt_no_fail(const char *fmt, va_list *va)
{
QObject *obj;
+ QDict *ret;
obj = qobject_from_jsonv(fmt, va);
if (!obj) {
@@ -361,9 +361,8 @@ static void GCC_FMT_ATTR(2, 0) qerror_set_data(QError *qerr,
abort();
}
- qerr->error = qobject_to_qdict(obj);
-
- obj = qdict_get(qerr->error, "class");
+ ret = qobject_to_qdict(obj);
+ obj = qdict_get(ret, "class");
if (!obj) {
fprintf(stderr, "missing 'class' key in '%s'\n", fmt);
abort();
@@ -372,8 +371,8 @@ static void GCC_FMT_ATTR(2, 0) qerror_set_data(QError *qerr,
fprintf(stderr, "'class' key value should be a string in '%s'\n", fmt);
abort();
}
-
- obj = qdict_get(qerr->error, "data");
+
+ obj = qdict_get(ret, "data");
if (!obj) {
fprintf(stderr, "missing 'data' key in '%s'\n", fmt);
abort();
@@ -382,9 +381,11 @@ static void GCC_FMT_ATTR(2, 0) qerror_set_data(QError
*qerr,
fprintf(stderr, "'data' key value should be a dict in '%s'\n", fmt);
abort();
}
+
+ return ret;
}
-static void qerror_set_desc(QError *qerr, const char *fmt)
+static const QErrorStringTable *get_desc_no_fail(const char *fmt)
{
int i;
@@ -392,8 +393,7 @@ static void qerror_set_desc(QError *qerr, const char *fmt)
for (i = 0; qerror_table[i].error_fmt; i++) {
if (strcmp(qerror_table[i].error_fmt, fmt) == 0) {
- qerr->entry = &qerror_table[i];
- return;
+ return &qerror_table[i];
}
}
@@ -426,8 +426,8 @@ static QError *qerror_from_info(const char *file, int
linenr, const char *func,
qerr->file = file;
qerr->func = func;
- qerror_set_data(qerr, fmt, va);
- qerror_set_desc(qerr, fmt);
+ qerr->error = error_obj_from_fmt_no_fail(fmt, va);
+ qerr->entry = get_desc_no_fail(fmt);
return qerr;
}
--
1.7.11.2.249.g31c7954.dirty
- [Qemu-devel] [PATCH v3 00/35]: add new error format, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 01/35] monitor: drop unused monitor debug code, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 02/35] qerror: QERR_AMBIGUOUS_PATH: drop %(object) from human msg, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 03/35] qerror: QERR_DEVICE_ENCRYPTED: change error message, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 04/35] qerror: reduce public exposure, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 06/35] qerror: avoid passing qerr pointer,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 07/35] qerror: QError: drop file, linenr, func, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 05/35] qerror: drop qerror_abort(), Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 08/35] qerror: qerror_format(): return an allocated string, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 09/35] qerror: don't delay error message construction, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 11/35] qmp: query-block: add 'encryption_key_missing' field, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 10/35] error: don't delay error message construction, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 13/35] hmp_change(): don't access DeviceEncrypted's data, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 12/35] hmp: hmp_cont(): don't rely on QERR_DEVICE_ENCRYPTED, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 14/35] net: inet_connect(), inet_connect_opts(): add in_progress argument, Luiz Capitulino, 2012/08/10
- [Qemu-devel] [PATCH 15/35] migration: don't rely on any QERR_SOCKET_*, Luiz Capitulino, 2012/08/10