int qmp_marshal_input_cpu(Monitor *mon, const QDict *qdict, QObject **ret) { Error *local_err = NULL; Error **errp = &local_err; QDict *args = (QDict *)qdict; QmpInputVisitor *mi; QapiDeallocVisitor *md; Visitor *v; int64_t index; mi = qmp_input_visitor_new(QOBJECT(args)); v = qmp_input_get_visitor(mi); visit_type_int(v, &index, "index", errp); qmp_input_visitor_cleanup(mi); if (error_is_set(errp)) { goto out; } qmp_cpu(index, errp); out: md = qapi_dealloc_visitor_new(); v = qapi_dealloc_get_visitor(md); visit_type_int(v, &index, "index", errp); qapi_dealloc_visitor_cleanup(md); if (local_err) { qerror_report_err(local_err); error_free(local_err); return -1; } return 0; }
static void dealloc_helper(void *native_in, VisitorFunc visit, Error **errp) { QapiDeallocVisitor *qdv = qapi_dealloc_visitor_new(); visit(qapi_dealloc_get_visitor(qdv), &native_in, errp); qapi_dealloc_visitor_cleanup(qdv); }
static void teardown_fixture(OptsVisitorFixture *f, gconstpointer test_data) { if (f->userdef != NULL) { QapiDeallocVisitor *dv; dv = qapi_dealloc_visitor_new(); visit_type_UserDefOptions(qapi_dealloc_get_visitor(dv), NULL, &f->userdef, NULL); qapi_dealloc_visitor_cleanup(dv); } error_free(f->err); }
static void qmp_marshal_output_query_version(VersionInfo * ret_in, QObject **ret_out, Error **errp) { QapiDeallocVisitor *md = qapi_dealloc_visitor_new(); QmpOutputVisitor *mo = qmp_output_visitor_new(); Visitor *v; v = qmp_output_get_visitor(mo); visit_type_VersionInfo(v, &ret_in, "unused", errp); if (!error_is_set(errp)) { *ret_out = qmp_output_get_qobject(mo); } qmp_output_visitor_cleanup(mo); v = qapi_dealloc_get_visitor(md); visit_type_VersionInfo(v, &ret_in, "unused", errp); qapi_dealloc_visitor_cleanup(md); }
static int parse_numa(QemuOpts *opts, void *opaque) { NumaOptions *object = NULL; Error *err = NULL; { OptsVisitor *ov = opts_visitor_new(opts); visit_type_NumaOptions(opts_get_visitor(ov), &object, NULL, &err); opts_visitor_cleanup(ov); } if (err) { goto error; } switch (object->kind) { case NUMA_OPTIONS_KIND_NODE: numa_node_parse(object->node, opts, &err); if (err) { goto error; } nb_numa_nodes++; break; default: abort(); } return 0; error: error_report_err(err); if (object) { QapiDeallocVisitor *dv = qapi_dealloc_visitor_new(); visit_type_NumaOptions(qapi_dealloc_get_visitor(dv), &object, NULL, NULL); qapi_dealloc_visitor_cleanup(dv); } return -1; }