diff options
Diffstat (limited to 'scripts/qapi')
-rw-r--r-- | scripts/qapi/events.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/scripts/qapi/events.py b/scripts/qapi/events.py index f6e1e76f64..fee8c671e7 100644 --- a/scripts/qapi/events.py +++ b/scripts/qapi/events.py @@ -126,7 +126,7 @@ def gen_event_send(name: str, if have_args: assert arg_type is not None ret += mcgen(''' - v = qobject_output_visitor_new(&obj); + v = qobject_output_visitor_new_qmp(&obj); ''') if not arg_type.is_implicit(): ret += mcgen(''' @@ -145,7 +145,11 @@ def gen_event_send(name: str, ret += mcgen(''' visit_complete(v, &obj); - qdict_put_obj(qmp, "data", obj); + if (qdict_size(qobject_to(QDict, obj))) { + qdict_put_obj(qmp, "data", obj); + } else { + qobject_unref(obj); + } ''') ret += mcgen(''' @@ -188,7 +192,6 @@ class QAPISchemaGenEventVisitor(QAPISchemaModularCVisitor): #include "qapi/compat-policy.h" #include "qapi/error.h" #include "qapi/qmp/qdict.h" -#include "qapi/qobject-output-visitor.h" #include "qapi/qmp-event.h" ''', |