qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 02/14] qapi/introspect.py: use _make_tree for features nod


From: Markus Armbruster
Subject: Re: [PATCH v4 02/14] qapi/introspect.py: use _make_tree for features nodes
Date: Wed, 03 Feb 2021 14:49:23 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)

John Snow <jsnow@redhat.com> writes:

> At present, we open-code this in _make_tree itself; but if the structure
> of the tree changes, this is brittle. Use an explicit recursive call to
> _make_tree when appropriate to help keep the interior node typing
> consistent.
>
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  scripts/qapi/introspect.py | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/qapi/introspect.py b/scripts/qapi/introspect.py
> index 43ab4be1f77..3295a15c98e 100644
> --- a/scripts/qapi/introspect.py
> +++ b/scripts/qapi/introspect.py
> @@ -30,7 +30,9 @@ def _make_tree(obj, ifcond, features, extra=None):
>      if ifcond:
>          extra['if'] = ifcond
>      if features:
> -        obj['features'] = [(f.name, {'if': f.ifcond}) for f in features]
> +        obj['features'] = [
> +            _make_tree(f.name, f.ifcond, None) for f in features
> +        ]
>      if extra:
>          return (obj, extra)
>      return obj

The commit message made me expect a patch that improves the code without
changing its behavior.  This is not the case.  We go from

    obj['features'] = [(f.name, {'if': f.ifcond}) for f in features]

to

    obj['features'] = [_make_tree(f.name, f.ifcond) for f in features]

where

    _make_tree(f.name, f.ifcond)
    = (f.name, {'if': f.ifcond})       if f.ifcond
    = f.name                           else

Differs when not f.ifcond.  Feels like an improvement.  However, the
commit message did not prepare me for it.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]