summaryrefslogtreecommitdiff
path: root/qerror.h
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-02-18 19:46:49 +0100
committerMarkus Armbruster <armbru@redhat.com>2010-03-16 16:58:32 +0100
commit827b08139c8ba97c18bda19e4893fdf26878b531 (patch)
tree1c02d74e56c7ee47b6542712a00872e02b794e9b /qerror.h
parentab5b027ee645f26320379d1d80cd96fdc944ecb5 (diff)
error: Infrastructure to track locations for error reporting
New struct Location holds a location. So far, the only location is LOC_NONE, so this doesn't do anything useful yet. Passing the current location all over the place would be too cumbersome. Hide it away in static cur_loc instead, and provide accessors. Print it in error_report(). Store it in QError, and print it in qerror_print(). Store it in QemuOpt, for use by qemu_opts_foreach(). This makes error_report() do the right thing when it runs within qemu_opts_foreach(). We may still have to store it in other data structures holding user input for better error messages. Left for another day.
Diffstat (limited to 'qerror.h')
-rw-r--r--qerror.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/qerror.h b/qerror.h
index ee59615bd..f25be1b2c 100644
--- a/qerror.h
+++ b/qerror.h
@@ -14,6 +14,7 @@
#include "qdict.h"
#include "qstring.h"
+#include "qemu-error.h"
#include <stdarg.h>
typedef struct QErrorStringTable {
@@ -24,6 +25,7 @@ typedef struct QErrorStringTable {
typedef struct QError {
QObject_HEAD;
QDict *error;
+ Location loc;
int linenr;
const char *file;
const char *func;
@@ -34,7 +36,7 @@ QError *qerror_new(void);
QError *qerror_from_info(const char *file, int linenr, const char *func,
const char *fmt, va_list *va);
QString *qerror_human(const QError *qerror);
-void qerror_print(const QError *qerror);
+void qerror_print(QError *qerror);
QError *qobject_to_qerror(const QObject *obj);
/*