qapi: Consistent generated code: prefer visitor 'v'
We had some pointless differences in the generated code for visit, command marshalling, and events; unifying them makes it easier for future patches to consolidate to common helper functions. This is one patch of a series to clean up these differences. This patch names the local visitor variable 'v' rather than 'm'. Related objects, such as 'QapiDeallocVisitor', are also named by their initials instead of an unrelated leading m. No change in semantics to the generated code. Signed-off-by: Eric Blake <eblake@redhat.com> Message-Id: <1443565276-4535-12-git-send-email-eblake@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
2a0f50e8d9
commit
f8b7f1a8ea
|
@ -740,32 +740,32 @@ Example:
|
||||||
|
|
||||||
void qapi_free_UserDefOne(UserDefOne *obj)
|
void qapi_free_UserDefOne(UserDefOne *obj)
|
||||||
{
|
{
|
||||||
QapiDeallocVisitor *md;
|
QapiDeallocVisitor *qdv;
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
|
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
md = qapi_dealloc_visitor_new();
|
qdv = qapi_dealloc_visitor_new();
|
||||||
v = qapi_dealloc_get_visitor(md);
|
v = qapi_dealloc_get_visitor(qdv);
|
||||||
visit_type_UserDefOne(v, &obj, NULL, NULL);
|
visit_type_UserDefOne(v, &obj, NULL, NULL);
|
||||||
qapi_dealloc_visitor_cleanup(md);
|
qapi_dealloc_visitor_cleanup(qdv);
|
||||||
}
|
}
|
||||||
|
|
||||||
void qapi_free_UserDefOneList(UserDefOneList *obj)
|
void qapi_free_UserDefOneList(UserDefOneList *obj)
|
||||||
{
|
{
|
||||||
QapiDeallocVisitor *md;
|
QapiDeallocVisitor *qdv;
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
|
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
md = qapi_dealloc_visitor_new();
|
qdv = qapi_dealloc_visitor_new();
|
||||||
v = qapi_dealloc_get_visitor(md);
|
v = qapi_dealloc_get_visitor(qdv);
|
||||||
visit_type_UserDefOneList(v, &obj, NULL, NULL);
|
visit_type_UserDefOneList(v, &obj, NULL, NULL);
|
||||||
qapi_dealloc_visitor_cleanup(md);
|
qapi_dealloc_visitor_cleanup(qdv);
|
||||||
}
|
}
|
||||||
$ cat qapi-generated/example-qapi-types.h
|
$ cat qapi-generated/example-qapi-types.h
|
||||||
[Uninteresting stuff omitted...]
|
[Uninteresting stuff omitted...]
|
||||||
|
@ -823,15 +823,15 @@ Example:
|
||||||
$ cat qapi-generated/example-qapi-visit.c
|
$ cat qapi-generated/example-qapi-visit.c
|
||||||
[Uninteresting stuff omitted...]
|
[Uninteresting stuff omitted...]
|
||||||
|
|
||||||
static void visit_type_UserDefOne_fields(Visitor *m, UserDefOne **obj, Error **errp)
|
static void visit_type_UserDefOne_fields(Visitor *v, UserDefOne **obj, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_type_int(m, &(*obj)->integer, "integer", &err);
|
visit_type_int(v, &(*obj)->integer, "integer", &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
visit_type_str(m, &(*obj)->string, "string", &err);
|
visit_type_str(v, &(*obj)->string, "string", &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -840,40 +840,40 @@ Example:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void visit_type_UserDefOne(Visitor *m, UserDefOne **obj, const char *name, Error **errp)
|
void visit_type_UserDefOne(Visitor *v, UserDefOne **obj, const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_start_struct(m, (void **)obj, "UserDefOne", name, sizeof(UserDefOne), &err);
|
visit_start_struct(v, (void **)obj, "UserDefOne", name, sizeof(UserDefOne), &err);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
if (*obj) {
|
if (*obj) {
|
||||||
visit_type_UserDefOne_fields(m, obj, errp);
|
visit_type_UserDefOne_fields(v, obj, errp);
|
||||||
}
|
}
|
||||||
visit_end_struct(m, &err);
|
visit_end_struct(v, &err);
|
||||||
}
|
}
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
|
||||||
void visit_type_UserDefOneList(Visitor *m, UserDefOneList **obj, const char *name, Error **errp)
|
void visit_type_UserDefOneList(Visitor *v, UserDefOneList **obj, const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
GenericList *i, **prev;
|
GenericList *i, **prev;
|
||||||
|
|
||||||
visit_start_list(m, name, &err);
|
visit_start_list(v, name, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (prev = (GenericList **)obj;
|
for (prev = (GenericList **)obj;
|
||||||
!err && (i = visit_next_list(m, prev, &err)) != NULL;
|
!err && (i = visit_next_list(v, prev, &err)) != NULL;
|
||||||
prev = &i) {
|
prev = &i) {
|
||||||
UserDefOneList *native_i = (UserDefOneList *)i;
|
UserDefOneList *native_i = (UserDefOneList *)i;
|
||||||
visit_type_UserDefOne(m, &native_i->value, NULL, &err);
|
visit_type_UserDefOne(v, &native_i->value, NULL, &err);
|
||||||
}
|
}
|
||||||
|
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
err = NULL;
|
err = NULL;
|
||||||
visit_end_list(m, &err);
|
visit_end_list(v, &err);
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
@ -885,8 +885,8 @@ Example:
|
||||||
|
|
||||||
[Visitors for built-in types omitted...]
|
[Visitors for built-in types omitted...]
|
||||||
|
|
||||||
void visit_type_UserDefOne(Visitor *m, UserDefOne **obj, const char *name, Error **errp);
|
void visit_type_UserDefOne(Visitor *v, UserDefOne **obj, const char *name, Error **errp);
|
||||||
void visit_type_UserDefOneList(Visitor *m, UserDefOneList **obj, const char *name, Error **errp);
|
void visit_type_UserDefOneList(Visitor *v, UserDefOneList **obj, const char *name, Error **errp);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -917,36 +917,36 @@ Example:
|
||||||
static void qmp_marshal_output_UserDefOne(UserDefOne *ret_in, QObject **ret_out, Error **errp)
|
static void qmp_marshal_output_UserDefOne(UserDefOne *ret_in, QObject **ret_out, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
QmpOutputVisitor *mo = qmp_output_visitor_new();
|
QmpOutputVisitor *qov = qmp_output_visitor_new();
|
||||||
QapiDeallocVisitor *md;
|
QapiDeallocVisitor *qdv;
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
|
|
||||||
v = qmp_output_get_visitor(mo);
|
v = qmp_output_get_visitor(qov);
|
||||||
visit_type_UserDefOne(v, &ret_in, "unused", &err);
|
visit_type_UserDefOne(v, &ret_in, "unused", &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
*ret_out = qmp_output_get_qobject(mo);
|
*ret_out = qmp_output_get_qobject(qov);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
qmp_output_visitor_cleanup(mo);
|
qmp_output_visitor_cleanup(qov);
|
||||||
md = qapi_dealloc_visitor_new();
|
qdv = qapi_dealloc_visitor_new();
|
||||||
v = qapi_dealloc_get_visitor(md);
|
v = qapi_dealloc_get_visitor(qdv);
|
||||||
visit_type_UserDefOne(v, &ret_in, "unused", NULL);
|
visit_type_UserDefOne(v, &ret_in, "unused", NULL);
|
||||||
qapi_dealloc_visitor_cleanup(md);
|
qapi_dealloc_visitor_cleanup(qdv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qmp_marshal_my_command(QDict *args, QObject **ret, Error **errp)
|
static void qmp_marshal_my_command(QDict *args, QObject **ret, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
UserDefOne *retval;
|
UserDefOne *retval;
|
||||||
QmpInputVisitor *mi = qmp_input_visitor_new_strict(QOBJECT(args));
|
QmpInputVisitor *qiv = qmp_input_visitor_new_strict(QOBJECT(args));
|
||||||
QapiDeallocVisitor *md;
|
QapiDeallocVisitor *qdv;
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
UserDefOne *arg1 = NULL;
|
UserDefOne *arg1 = NULL;
|
||||||
|
|
||||||
v = qmp_input_get_visitor(mi);
|
v = qmp_input_get_visitor(qiv);
|
||||||
visit_type_UserDefOne(v, &arg1, "arg1", &err);
|
visit_type_UserDefOne(v, &arg1, "arg1", &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -961,11 +961,11 @@ Example:
|
||||||
|
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
qmp_input_visitor_cleanup(mi);
|
qmp_input_visitor_cleanup(qiv);
|
||||||
md = qapi_dealloc_visitor_new();
|
qdv = qapi_dealloc_visitor_new();
|
||||||
v = qapi_dealloc_get_visitor(md);
|
v = qapi_dealloc_get_visitor(qdv);
|
||||||
visit_type_UserDefOne(v, &arg1, "arg1", NULL);
|
visit_type_UserDefOne(v, &arg1, "arg1", NULL);
|
||||||
qapi_dealloc_visitor_cleanup(md);
|
qapi_dealloc_visitor_cleanup(qdv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qmp_init_marshal(void)
|
static void qmp_init_marshal(void)
|
||||||
|
|
18
qom/object.c
18
qom/object.c
|
@ -1167,31 +1167,31 @@ out:
|
||||||
void object_property_parse(Object *obj, const char *string,
|
void object_property_parse(Object *obj, const char *string,
|
||||||
const char *name, Error **errp)
|
const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
StringInputVisitor *mi;
|
StringInputVisitor *siv;
|
||||||
mi = string_input_visitor_new(string);
|
siv = string_input_visitor_new(string);
|
||||||
object_property_set(obj, string_input_get_visitor(mi), name, errp);
|
object_property_set(obj, string_input_get_visitor(siv), name, errp);
|
||||||
|
|
||||||
string_input_visitor_cleanup(mi);
|
string_input_visitor_cleanup(siv);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *object_property_print(Object *obj, const char *name, bool human,
|
char *object_property_print(Object *obj, const char *name, bool human,
|
||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
StringOutputVisitor *mo;
|
StringOutputVisitor *sov;
|
||||||
char *string = NULL;
|
char *string = NULL;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
|
|
||||||
mo = string_output_visitor_new(human);
|
sov = string_output_visitor_new(human);
|
||||||
object_property_get(obj, string_output_get_visitor(mo), name, &local_err);
|
object_property_get(obj, string_output_get_visitor(sov), name, &local_err);
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
error_propagate(errp, local_err);
|
error_propagate(errp, local_err);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
string = string_output_get_string(mo);
|
string = string_output_get_string(sov);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
string_output_visitor_cleanup(mo);
|
string_output_visitor_cleanup(sov);
|
||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,11 +19,11 @@
|
||||||
void object_property_set_qobject(Object *obj, QObject *value,
|
void object_property_set_qobject(Object *obj, QObject *value,
|
||||||
const char *name, Error **errp)
|
const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
QmpInputVisitor *mi;
|
QmpInputVisitor *qiv;
|
||||||
mi = qmp_input_visitor_new(value);
|
qiv = qmp_input_visitor_new(value);
|
||||||
object_property_set(obj, qmp_input_get_visitor(mi), name, errp);
|
object_property_set(obj, qmp_input_get_visitor(qiv), name, errp);
|
||||||
|
|
||||||
qmp_input_visitor_cleanup(mi);
|
qmp_input_visitor_cleanup(qiv);
|
||||||
}
|
}
|
||||||
|
|
||||||
QObject *object_property_get_qobject(Object *obj, const char *name,
|
QObject *object_property_get_qobject(Object *obj, const char *name,
|
||||||
|
@ -31,14 +31,14 @@ QObject *object_property_get_qobject(Object *obj, const char *name,
|
||||||
{
|
{
|
||||||
QObject *ret = NULL;
|
QObject *ret = NULL;
|
||||||
Error *local_err = NULL;
|
Error *local_err = NULL;
|
||||||
QmpOutputVisitor *mo;
|
QmpOutputVisitor *qov;
|
||||||
|
|
||||||
mo = qmp_output_visitor_new();
|
qov = qmp_output_visitor_new();
|
||||||
object_property_get(obj, qmp_output_get_visitor(mo), name, &local_err);
|
object_property_get(obj, qmp_output_get_visitor(qov), name, &local_err);
|
||||||
if (!local_err) {
|
if (!local_err) {
|
||||||
ret = qmp_output_get_qobject(mo);
|
ret = qmp_output_get_qobject(qov);
|
||||||
}
|
}
|
||||||
error_propagate(errp, local_err);
|
error_propagate(errp, local_err);
|
||||||
qmp_output_visitor_cleanup(mo);
|
qmp_output_visitor_cleanup(qov);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,8 +82,8 @@ def gen_marshal_vars(arg_type, ret_type):
|
||||||
|
|
||||||
if arg_type:
|
if arg_type:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
QmpInputVisitor *mi = qmp_input_visitor_new_strict(QOBJECT(args));
|
QmpInputVisitor *qiv = qmp_input_visitor_new_strict(QOBJECT(args));
|
||||||
QapiDeallocVisitor *md;
|
QapiDeallocVisitor *qdv;
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
''')
|
''')
|
||||||
|
|
||||||
|
@ -122,15 +122,15 @@ def gen_marshal_input_visit(arg_type, dealloc=False):
|
||||||
errparg = 'NULL'
|
errparg = 'NULL'
|
||||||
errarg = None
|
errarg = None
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
qmp_input_visitor_cleanup(mi);
|
qmp_input_visitor_cleanup(qiv);
|
||||||
md = qapi_dealloc_visitor_new();
|
qdv = qapi_dealloc_visitor_new();
|
||||||
v = qapi_dealloc_get_visitor(md);
|
v = qapi_dealloc_get_visitor(qdv);
|
||||||
''')
|
''')
|
||||||
else:
|
else:
|
||||||
errparg = '&err'
|
errparg = '&err'
|
||||||
errarg = 'err'
|
errarg = 'err'
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
v = qmp_input_get_visitor(mi);
|
v = qmp_input_get_visitor(qiv);
|
||||||
''')
|
''')
|
||||||
|
|
||||||
for memb in arg_type.members:
|
for memb in arg_type.members:
|
||||||
|
@ -160,7 +160,7 @@ visit_type_%(c_type)s(v, &%(c_name)s, "%(name)s", %(errp)s);
|
||||||
|
|
||||||
if dealloc:
|
if dealloc:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
qapi_dealloc_visitor_cleanup(md);
|
qapi_dealloc_visitor_cleanup(qdv);
|
||||||
''')
|
''')
|
||||||
pop_indent()
|
pop_indent()
|
||||||
return ret
|
return ret
|
||||||
|
@ -172,24 +172,24 @@ def gen_marshal_output(ret_type):
|
||||||
static void qmp_marshal_output_%(c_name)s(%(c_type)s ret_in, QObject **ret_out, Error **errp)
|
static void qmp_marshal_output_%(c_name)s(%(c_type)s ret_in, QObject **ret_out, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
QmpOutputVisitor *mo = qmp_output_visitor_new();
|
QmpOutputVisitor *qov = qmp_output_visitor_new();
|
||||||
QapiDeallocVisitor *md;
|
QapiDeallocVisitor *qdv;
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
|
|
||||||
v = qmp_output_get_visitor(mo);
|
v = qmp_output_get_visitor(qov);
|
||||||
visit_type_%(c_name)s(v, &ret_in, "unused", &err);
|
visit_type_%(c_name)s(v, &ret_in, "unused", &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
*ret_out = qmp_output_get_qobject(mo);
|
*ret_out = qmp_output_get_qobject(qov);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
qmp_output_visitor_cleanup(mo);
|
qmp_output_visitor_cleanup(qov);
|
||||||
md = qapi_dealloc_visitor_new();
|
qdv = qapi_dealloc_visitor_new();
|
||||||
v = qapi_dealloc_get_visitor(md);
|
v = qapi_dealloc_get_visitor(qdv);
|
||||||
visit_type_%(c_name)s(v, &ret_in, "unused", NULL);
|
visit_type_%(c_name)s(v, &ret_in, "unused", NULL);
|
||||||
qapi_dealloc_visitor_cleanup(md);
|
qapi_dealloc_visitor_cleanup(qdv);
|
||||||
}
|
}
|
||||||
''',
|
''',
|
||||||
c_type=ret_type.c_type(), c_name=ret_type.c_name())
|
c_type=ret_type.c_type(), c_name=ret_type.c_name())
|
||||||
|
|
|
@ -188,17 +188,17 @@ def gen_type_cleanup(name):
|
||||||
|
|
||||||
void qapi_free_%(c_name)s(%(c_name)s *obj)
|
void qapi_free_%(c_name)s(%(c_name)s *obj)
|
||||||
{
|
{
|
||||||
QapiDeallocVisitor *md;
|
QapiDeallocVisitor *qdv;
|
||||||
Visitor *v;
|
Visitor *v;
|
||||||
|
|
||||||
if (!obj) {
|
if (!obj) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
md = qapi_dealloc_visitor_new();
|
qdv = qapi_dealloc_visitor_new();
|
||||||
v = qapi_dealloc_get_visitor(md);
|
v = qapi_dealloc_get_visitor(qdv);
|
||||||
visit_type_%(c_name)s(v, &obj, NULL, NULL);
|
visit_type_%(c_name)s(v, &obj, NULL, NULL);
|
||||||
qapi_dealloc_visitor_cleanup(md);
|
qapi_dealloc_visitor_cleanup(qdv);
|
||||||
}
|
}
|
||||||
''',
|
''',
|
||||||
c_name=c_name(name))
|
c_name=c_name(name))
|
||||||
|
|
|
@ -24,7 +24,7 @@ def gen_visit_decl(name, scalar=False):
|
||||||
if not scalar:
|
if not scalar:
|
||||||
c_type += '*'
|
c_type += '*'
|
||||||
return mcgen('''
|
return mcgen('''
|
||||||
void visit_type_%(c_name)s(Visitor *m, %(c_type)sobj, const char *name, Error **errp);
|
void visit_type_%(c_name)s(Visitor *v, %(c_type)sobj, const char *name, Error **errp);
|
||||||
''',
|
''',
|
||||||
c_name=c_name(name), c_type=c_type)
|
c_name=c_name(name), c_type=c_type)
|
||||||
|
|
||||||
|
@ -39,20 +39,20 @@ def gen_visit_implicit_struct(typ):
|
||||||
# Need a forward declaration
|
# Need a forward declaration
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
|
|
||||||
static void visit_type_%(c_type)s_fields(Visitor *m, %(c_type)s **obj, Error **errp);
|
static void visit_type_%(c_type)s_fields(Visitor *v, %(c_type)s **obj, Error **errp);
|
||||||
''',
|
''',
|
||||||
c_type=typ.c_name())
|
c_type=typ.c_name())
|
||||||
|
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
|
|
||||||
static void visit_type_implicit_%(c_type)s(Visitor *m, %(c_type)s **obj, Error **errp)
|
static void visit_type_implicit_%(c_type)s(Visitor *v, %(c_type)s **obj, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_start_implicit_struct(m, (void **)obj, sizeof(%(c_type)s), &err);
|
visit_start_implicit_struct(v, (void **)obj, sizeof(%(c_type)s), &err);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
visit_type_%(c_type)s_fields(m, obj, errp);
|
visit_type_%(c_type)s_fields(v, obj, errp);
|
||||||
visit_end_implicit_struct(m, &err);
|
visit_end_implicit_struct(v, &err);
|
||||||
}
|
}
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ def gen_visit_struct_fields(name, base, members):
|
||||||
|
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
|
|
||||||
static void visit_type_%(c_name)s_fields(Visitor *m, %(c_name)s **obj, Error **errp)
|
static void visit_type_%(c_name)s_fields(Visitor *v, %(c_name)s **obj, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ static void visit_type_%(c_name)s_fields(Visitor *m, %(c_name)s **obj, Error **e
|
||||||
|
|
||||||
if base:
|
if base:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
visit_type_implicit_%(c_type)s(m, &(*obj)->%(c_name)s, &err);
|
visit_type_implicit_%(c_type)s(v, &(*obj)->%(c_name)s, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -91,14 +91,14 @@ if (err) {
|
||||||
for memb in members:
|
for memb in members:
|
||||||
if memb.optional:
|
if memb.optional:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
visit_optional(m, &(*obj)->has_%(c_name)s, "%(name)s", &err);
|
visit_optional(v, &(*obj)->has_%(c_name)s, "%(name)s", &err);
|
||||||
if (!err && (*obj)->has_%(c_name)s) {
|
if (!err && (*obj)->has_%(c_name)s) {
|
||||||
''',
|
''',
|
||||||
c_name=c_name(memb.name), name=memb.name)
|
c_name=c_name(memb.name), name=memb.name)
|
||||||
push_indent()
|
push_indent()
|
||||||
|
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
visit_type_%(c_type)s(m, &(*obj)->%(c_name)s, "%(name)s", &err);
|
visit_type_%(c_type)s(v, &(*obj)->%(c_name)s, "%(name)s", &err);
|
||||||
''',
|
''',
|
||||||
c_type=memb.type.c_name(), c_name=c_name(memb.name),
|
c_type=memb.type.c_name(), c_name=c_name(memb.name),
|
||||||
name=memb.name)
|
name=memb.name)
|
||||||
|
@ -136,16 +136,16 @@ def gen_visit_struct(name, base, members):
|
||||||
# call qapi_free_FOO() to avoid a memory leak of the partial FOO.
|
# call qapi_free_FOO() to avoid a memory leak of the partial FOO.
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
|
|
||||||
void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error **errp)
|
void visit_type_%(c_name)s(Visitor *v, %(c_name)s **obj, const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_start_struct(m, (void **)obj, "%(name)s", name, sizeof(%(c_name)s), &err);
|
visit_start_struct(v, (void **)obj, "%(name)s", name, sizeof(%(c_name)s), &err);
|
||||||
if (!err) {
|
if (!err) {
|
||||||
if (*obj) {
|
if (*obj) {
|
||||||
visit_type_%(c_name)s_fields(m, obj, errp);
|
visit_type_%(c_name)s_fields(v, obj, errp);
|
||||||
}
|
}
|
||||||
visit_end_struct(m, &err);
|
visit_end_struct(v, &err);
|
||||||
}
|
}
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
@ -158,26 +158,26 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error
|
||||||
def gen_visit_list(name, element_type):
|
def gen_visit_list(name, element_type):
|
||||||
return mcgen('''
|
return mcgen('''
|
||||||
|
|
||||||
void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error **errp)
|
void visit_type_%(c_name)s(Visitor *v, %(c_name)s **obj, const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
GenericList *i, **prev;
|
GenericList *i, **prev;
|
||||||
|
|
||||||
visit_start_list(m, name, &err);
|
visit_start_list(v, name, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (prev = (GenericList **)obj;
|
for (prev = (GenericList **)obj;
|
||||||
!err && (i = visit_next_list(m, prev, &err)) != NULL;
|
!err && (i = visit_next_list(v, prev, &err)) != NULL;
|
||||||
prev = &i) {
|
prev = &i) {
|
||||||
%(c_name)s *native_i = (%(c_name)s *)i;
|
%(c_name)s *native_i = (%(c_name)s *)i;
|
||||||
visit_type_%(c_elt_type)s(m, &native_i->value, NULL, &err);
|
visit_type_%(c_elt_type)s(v, &native_i->value, NULL, &err);
|
||||||
}
|
}
|
||||||
|
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
err = NULL;
|
err = NULL;
|
||||||
visit_end_list(m, &err);
|
visit_end_list(v, &err);
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
@ -188,9 +188,9 @@ out:
|
||||||
def gen_visit_enum(name):
|
def gen_visit_enum(name):
|
||||||
return mcgen('''
|
return mcgen('''
|
||||||
|
|
||||||
void visit_type_%(c_name)s(Visitor *m, %(c_name)s *obj, const char *name, Error **errp)
|
void visit_type_%(c_name)s(Visitor *v, %(c_name)s *obj, const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
visit_type_enum(m, (int *)obj, %(c_name)s_lookup, "%(name)s", name, errp);
|
visit_type_enum(v, (int *)obj, %(c_name)s_lookup, "%(name)s", name, errp);
|
||||||
}
|
}
|
||||||
''',
|
''',
|
||||||
c_name=c_name(name), name=name)
|
c_name=c_name(name), name=name)
|
||||||
|
@ -199,15 +199,15 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s *obj, const char *name, Error
|
||||||
def gen_visit_alternate(name, variants):
|
def gen_visit_alternate(name, variants):
|
||||||
ret = mcgen('''
|
ret = mcgen('''
|
||||||
|
|
||||||
void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error **errp)
|
void visit_type_%(c_name)s(Visitor *v, %(c_name)s **obj, const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_start_implicit_struct(m, (void**) obj, sizeof(%(c_name)s), &err);
|
visit_start_implicit_struct(v, (void**) obj, sizeof(%(c_name)s), &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
visit_get_next_type(m, (int*) &(*obj)->kind, %(c_name)s_qtypes, name, &err);
|
visit_get_next_type(v, (int*) &(*obj)->kind, %(c_name)s_qtypes, name, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out_end;
|
goto out_end;
|
||||||
}
|
}
|
||||||
|
@ -218,7 +218,7 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error
|
||||||
for var in variants.variants:
|
for var in variants.variants:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
case %(case)s:
|
case %(case)s:
|
||||||
visit_type_%(c_type)s(m, &(*obj)->%(c_name)s, name, &err);
|
visit_type_%(c_type)s(v, &(*obj)->%(c_name)s, name, &err);
|
||||||
break;
|
break;
|
||||||
''',
|
''',
|
||||||
case=c_enum_const(variants.tag_member.type.name,
|
case=c_enum_const(variants.tag_member.type.name,
|
||||||
|
@ -233,7 +233,7 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error
|
||||||
out_end:
|
out_end:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
err = NULL;
|
err = NULL;
|
||||||
visit_end_implicit_struct(m, &err);
|
visit_end_implicit_struct(v, &err);
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
@ -256,11 +256,11 @@ def gen_visit_union(name, base, variants):
|
||||||
|
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
|
|
||||||
void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error **errp)
|
void visit_type_%(c_name)s(Visitor *v, %(c_name)s **obj, const char *name, Error **errp)
|
||||||
{
|
{
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
|
|
||||||
visit_start_struct(m, (void **)obj, "%(name)s", name, sizeof(%(c_name)s), &err);
|
visit_start_struct(v, (void **)obj, "%(name)s", name, sizeof(%(c_name)s), &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -270,7 +270,7 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error
|
||||||
|
|
||||||
if base:
|
if base:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
visit_type_%(c_name)s_fields(m, obj, &err);
|
visit_type_%(c_name)s_fields(v, obj, &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out_obj;
|
goto out_obj;
|
||||||
}
|
}
|
||||||
|
@ -282,11 +282,11 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error
|
||||||
# we pointlessly use a different key for simple unions
|
# we pointlessly use a different key for simple unions
|
||||||
tag_key = 'type'
|
tag_key = 'type'
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
visit_type_%(c_type)s(m, &(*obj)->%(c_name)s, "%(name)s", &err);
|
visit_type_%(c_type)s(v, &(*obj)->%(c_name)s, "%(name)s", &err);
|
||||||
if (err) {
|
if (err) {
|
||||||
goto out_obj;
|
goto out_obj;
|
||||||
}
|
}
|
||||||
if (!visit_start_union(m, !!(*obj)->data, &err) || err) {
|
if (!visit_start_union(v, !!(*obj)->data, &err) || err) {
|
||||||
goto out_obj;
|
goto out_obj;
|
||||||
}
|
}
|
||||||
switch ((*obj)->%(c_name)s) {
|
switch ((*obj)->%(c_name)s) {
|
||||||
|
@ -308,13 +308,13 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error
|
||||||
var.name))
|
var.name))
|
||||||
if simple_union_type:
|
if simple_union_type:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
visit_type_%(c_type)s(m, &(*obj)->%(c_name)s, "data", &err);
|
visit_type_%(c_type)s(v, &(*obj)->%(c_name)s, "data", &err);
|
||||||
''',
|
''',
|
||||||
c_type=simple_union_type.c_name(),
|
c_type=simple_union_type.c_name(),
|
||||||
c_name=c_name(var.name))
|
c_name=c_name(var.name))
|
||||||
else:
|
else:
|
||||||
ret += mcgen('''
|
ret += mcgen('''
|
||||||
visit_type_implicit_%(c_type)s(m, &(*obj)->%(c_name)s, &err);
|
visit_type_implicit_%(c_type)s(v, &(*obj)->%(c_name)s, &err);
|
||||||
''',
|
''',
|
||||||
c_type=var.type.c_name(),
|
c_type=var.type.c_name(),
|
||||||
c_name=c_name(var.name))
|
c_name=c_name(var.name))
|
||||||
|
@ -329,11 +329,11 @@ void visit_type_%(c_name)s(Visitor *m, %(c_name)s **obj, const char *name, Error
|
||||||
out_obj:
|
out_obj:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
err = NULL;
|
err = NULL;
|
||||||
visit_end_union(m, !!(*obj)->data, &err);
|
visit_end_union(v, !!(*obj)->data, &err);
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
err = NULL;
|
err = NULL;
|
||||||
}
|
}
|
||||||
visit_end_struct(m, &err);
|
visit_end_struct(v, &err);
|
||||||
out:
|
out:
|
||||||
error_propagate(errp, err);
|
error_propagate(errp, err);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue