Hi On Mon, Dec 21, 2015 at 6:08 PM, Eric Blake <ebl...@redhat.com> wrote: > We are finally at the point where gen_visit_struct() and > gen_visit_union() can be unified to a generic gen_visit_object(). > > The generated code for structs and for flat unions is unchanged. > For simple unions, a new visit_type_FOO_fields() is created, > wrapping the visit of the non-variant tag field: > > |+static void visit_type_ChardevBackend_fields(Visitor *v, ChardevBackend > **obj, Error **errp) > |+{ > |+ Error *err = NULL; > |+ > |+ visit_type_ChardevBackendKind(v, "type", &(*obj)->type, &err); > |+ if (err) { > |+ goto out; > |+ } > |+ > |+out: > |+ error_propagate(errp, err); > |+} > |+ > | void visit_type_ChardevBackend(Visitor *v, const char *name, ChardevBackend > **obj, Error **errp) > | { > | Error *err = NULL; > |@@ -2319,7 +2332,7 @@ void visit_type_ChardevBackend(Visitor * > | if (!*obj) { > | goto out_obj; > | } > |- visit_type_ChardevBackendKind(v, "type", &(*obj)->type, &err); > |+ visit_type_ChardevBackend_fields(v, obj, &err); > | if (err) { > > Signed-off-by: Eric Blake <ebl...@redhat.com> >
Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> -- Marc-André Lureau