summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-02-17 10:52:26 +0100
committerMarkus Armbruster <armbru@redhat.com>2010-03-16 16:55:05 +0100
commitd6f468337aba7eeeab0c7a772eda7491eb432cca (patch)
tree452f99d0c5ff5f3529c7a8f48c8f3e1df38791d4
parenta44264880ef42254edb88f9ec5d6f35e3e84089b (diff)
downloadhqemu-d6f468337aba7eeeab0c7a772eda7491eb432cca.zip
hqemu-d6f468337aba7eeeab0c7a772eda7491eb432cca.tar.gz
monitor: Factor monitor_set_error() out of qemu_error_internal()
This separates the monitor part from the QError part.
-rw-r--r--monitor.c21
-rw-r--r--monitor.h3
2 files changed, 16 insertions, 8 deletions
diff --git a/monitor.c b/monitor.c
index c0a2119..638b4b5 100644
--- a/monitor.c
+++ b/monitor.c
@@ -3858,6 +3858,18 @@ fail:
return NULL;
}
+void monitor_set_error(Monitor *mon, QError *qerror)
+{
+ /* report only the first error */
+ if (!mon->error) {
+ mon->error = qerror;
+ } else {
+ MON_DEBUG("Additional error report at %s:%d\n",
+ qerror->file, qerror->linenr);
+ QDECREF(qerror);
+ }
+}
+
static void monitor_print_error(Monitor *mon)
{
qerror_print(mon->error);
@@ -4759,14 +4771,7 @@ void qemu_error_internal(const char *file, int linenr, const char *func,
QDECREF(qerror);
break;
case ERR_SINK_MONITOR:
- /* report only the first error */
- if (!qemu_error_sink->mon->error) {
- qemu_error_sink->mon->error = qerror;
- } else {
- MON_DEBUG("Additional error report at %s:%d\n", qerror->file,
- qerror->linenr);
- QDECREF(qerror);
- }
+ monitor_set_error(qemu_error_sink->mon, qerror);
break;
}
}
diff --git a/monitor.h b/monitor.h
index 8c32ea0..cf3b379 100644
--- a/monitor.h
+++ b/monitor.h
@@ -3,6 +3,7 @@
#include "qemu-common.h"
#include "qemu-char.h"
+#include "qerror.h"
#include "qdict.h"
#include "block.h"
@@ -49,4 +50,6 @@ void monitor_flush(Monitor *mon);
typedef void (MonitorCompletion)(void *opaque, QObject *ret_data);
+void monitor_set_error(Monitor *mon, QError *qerror);
+
#endif /* !MONITOR_H */
OpenPOWER on IntegriCloud