提交 d6f46833 编写于 作者: M Markus Armbruster

monitor: Factor monitor_set_error() out of qemu_error_internal()

This separates the monitor part from the QError part.
上级 a4426488
......@@ -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;
}
}
......@@ -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 */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册