[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 5/9] qapi: Generalize struct member policy checking
From: |
Eric Blake |
Subject: |
Re: [PATCH v2 5/9] qapi: Generalize struct member policy checking |
Date: |
Fri, 29 Oct 2021 10:20:24 -0500 |
User-agent: |
NeoMutt/20211022 |
On Thu, Oct 28, 2021 at 12:25:16PM +0200, Markus Armbruster wrote:
> The generated visitor functions call visit_deprecated_accept() and
> visit_deprecated() when visiting a struct member with special feature
> flag 'deprecated'. This makes the feature flag visible to the actual
> visitors. I want to make feature flag 'unstable' visible there as
> well, so I can add policy for it.
>
> To let me make it visible, replace these functions by
> visit_policy_reject() and visit_policy_skip(), which take the member's
> special features as an argument. Note that the new functions have the
> opposite sense, i.e. the return value flips.
>
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
> +++ b/qapi/qapi-forward-visitor.c
> @@ -246,25 +246,27 @@ static void forward_field_optional(Visitor *v, const
> char *name, bool *present)
> visit_optional(ffv->target, name, present);
> }
>
> -static bool forward_field_deprecated_accept(Visitor *v, const char *name,
> - Error **errp)
> +static bool forward_field_policy_reject(Visitor *v, const char *name,
> + unsigned special_features,
> + Error **errp)
> {
> ForwardFieldVisitor *ffv = to_ffv(v);
>
> if (!forward_field_translate_name(ffv, &name, errp)) {
> return false;
Should this return value be flipped?
> }
> - return visit_deprecated_accept(ffv->target, name, errp);
> + return visit_policy_reject(ffv->target, name, special_features, errp);
> }
>
> -static bool forward_field_deprecated(Visitor *v, const char *name)
> +static bool forward_field_policy_skip(Visitor *v, const char *name,
> + unsigned special_features)
> {
> ForwardFieldVisitor *ffv = to_ffv(v);
>
> if (!forward_field_translate_name(ffv, &name, NULL)) {
> return false;
and here too?
> }
> - return visit_deprecated(ffv->target, name);
> + return visit_policy_skip(ffv->target, name, special_features);
> }
>
Otherwise, the rest of the logic changes for flipped sense look right.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
- Re: [PATCH v2 4/9] qapi: Tools for sets of special feature flags in generated code, (continued)
[PATCH v2 1/9] qapi: New special feature flag "unstable", Markus Armbruster, 2021/10/28
[PATCH v2 2/9] qapi: Mark unstable QMP parts with feature 'unstable', Markus Armbruster, 2021/10/28
[PATCH v2 6/9] qapi: Generalize command policy checking, Markus Armbruster, 2021/10/28
[PATCH v2 9/9] qapi: Extend -compat to set policy for unstable interfaces, Markus Armbruster, 2021/10/28