Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- scripts/qapi-introspect.py | 2 ++ scripts/qapi-types.py | 2 ++ scripts/qapi-visit.py | 2 ++ 3 files changed, 6 insertions(+)
diff --git a/scripts/qapi-introspect.py b/scripts/qapi-introspect.py index 5e736a06df..b379c7c170 100644 --- a/scripts/qapi-introspect.py +++ b/scripts/qapi-introspect.py @@ -136,6 +136,8 @@ const QLitObject %(c_name)s = %(c_string)s; ret = {'name': member.name, 'type': self._use_type(member.type)} if member.optional: ret['default'] = None + if member.ifcond: + ret = (ret, member.ifcond) return ret def _gen_variants(self, tag_name, variants): diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py index c1316312ac..b7f4773fe1 100644 --- a/scripts/qapi-types.py +++ b/scripts/qapi-types.py @@ -41,6 +41,7 @@ struct %(c_name)s { def gen_struct_members(members): ret = '' for memb in members: + ret += gen_if(memb.ifcond) if memb.optional: ret += mcgen(''' bool has_%(c_name)s; @@ -50,6 +51,7 @@ def gen_struct_members(members): %(c_type)s %(c_name)s; ''', c_type=memb.type.c_type(), c_name=c_name(memb.name)) + ret += gen_endif(memb.ifcond) return ret diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py index bb18c9edee..25914f71b0 100644 --- a/scripts/qapi-visit.py +++ b/scripts/qapi-visit.py @@ -53,6 +53,7 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s *obj, Error **errp) c_type=base.c_name()) for memb in members: + ret += gen_if(memb.ifcond) if memb.optional: ret += mcgen(''' if (visit_optional(v, "%(name)s", &obj->has_%(c_name)s)) { @@ -72,6 +73,7 @@ void visit_type_%(c_name)s_members(Visitor *v, %(c_name)s *obj, Error **errp) ret += mcgen(''' } ''') + ret += gen_endif(memb.ifcond) if variants: ret += mcgen(''' -- 2.14.1.146.gd35faa819