]> git.proxmox.com Git - qemu.git/commitdiff
monitor: Factor monitor_set_error() out of qemu_error_internal()
authorMarkus Armbruster <armbru@redhat.com>
Wed, 17 Feb 2010 09:52:26 +0000 (10:52 +0100)
committerMarkus Armbruster <armbru@redhat.com>
Tue, 16 Mar 2010 15:55:05 +0000 (16:55 +0100)
This separates the monitor part from the QError part.

monitor.c
monitor.h

index c0a2119a20574c5803a8711e2d22c06dc7c28840..638b4b5665aa4e76cc40e331571720925c4b79ce 100644 (file)
--- 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;
     }
 }
index 8c32ea0af22a3cafce94954f42193bac0b9d5f85..cf3b3790c7cf105ddeda93969b2d14435b679ded 100644 (file)
--- 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 */