Eric Blake <ebl...@redhat.com> writes:

> Dan Berrange reported a case where he needs to work with a
> QCryptoBlockOptions union type using the OptsVisitor, but only
> visit one of the branches of that type (the discriminator is not
> visited directly, but learned externally).  When things were
> boxed, it was easy: just visit the variant directly, which took
> care of both allocating the variant and visiting its members, then
> store that pointer in the union type.  But now that things are
> unboxed, we need a way to visit the members without allocation,
> done by exposing visit_type_FOO_members() to the user.
>
> Before the patch, we had quite a bit of code associated with
> object_members_seen to make sure that a declaration of the helper
> was in scope before any use of the function.  But now that the
> helper is public and declared in the header, the .c file no
> longer needs to worry about topological sorting (the helper is
> always in scope), which leads to some nice cleanups.
>
> Signed-off-by: Eric Blake <ebl...@redhat.com>
>
> ---
> v2: Rebase atop s/fields/members/rename, don't provide useless
> declaration on alternates

I like this much better than v1.  Thanks!

Reply via email to