[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check() |
Date: |
Tue, 3 Nov 2015 10:34:07 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 11/03/2015 09:19 AM, Markus Armbruster wrote:
>>> I'm assuming this patch is based on
>>> [PATCH v8 06/17] qapi-types: Consolidate gen_struct() and gen_union()
>>> which has
>>>
>>> def check(self, schema, members, seen):
>>> if self.tag_name: # flat union
>>> self.tag_member = seen[self.tag_name]
>>> elif seen: # simple union
>>> assert self.tag_member in seen.itervalues()
>>> else: # alternate
>>> ---> self.tag_member.check(schema, members, seen)
>>>
>>> in QAPISchemaObjectTypeVariants.
>>
>> That was true in v8, but not in my pending v9 which did essentially what
>> your 7/7 did (move the tag_member.check() into Alternate.check() back in
>> patch 5).
Caused me some churn in incorporating your patches, but not too bad.
>>
>> At any rate, my first glance of your series shows that it is reasonable,
>> so my task today is to spit out a v9 of my series, but using your seven
>> patches in place of my four.
>
> Buyer beware: I'm not sure my seven do everything your four do.
Yours do the same as my patch 1. You also made a compelling argument for
eliminating my patch 3 (the enum values are already collision-proof,
therefore if we check that a variant name is in the enum, we don't need
to check for collisions) - except that in my 10/17, when I get rid of
the generated enum for alternates, I have to reinstate that check
somewhere; but adding it directly to QAPISchemaAlternateType.check() at
that point feels better.
My patch 2 is still needed, but looks a bit nicer on top of some of your
refactoring. And my patch 4 is still useful, as additional refactoring
to share the code used by my patch 2 and your code for ObjectType.check().
We'll see how it all turns out in v9.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH v8 07/17] qapi: Rework collision assertions, (continued)
- Re: [Qemu-devel] [PATCH v8 07/17] qapi: Rework collision assertions, Eric Blake, 2015/11/02
- [Qemu-devel] [PATCH v8.5 0/4] rework of 7/17, Eric Blake, 2015/11/02
- [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check(), Eric Blake, 2015/11/02
- Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check(), Markus Armbruster, 2015/11/03
- Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check(), Eric Blake, 2015/11/03
- Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check(), Markus Armbruster, 2015/11/03
- Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check(), Eric Blake, 2015/11/03
- Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check(), Markus Armbruster, 2015/11/03
- Re: [Qemu-devel] [PATCH v8.5 1/4] qapi: Drop all_members parameter from check(),
Eric Blake <=
- [Qemu-devel] [PATCH 1/7] qapi: Drop obsolete tag value collision assertions, Markus Armbruster, 2015/11/03
- [Qemu-devel] [PATCH 2/7] qapi: Simplify QAPISchemaObjectTypeMember.check(), Markus Armbruster, 2015/11/03
- [Qemu-devel] [PATCH 7/7] qapi: QAPISchemaObjectTypeVariants.check(), Markus Armbruster, 2015/11/03
- [Qemu-devel] [PATCH 4/7] qapi: Fix up commit 7618b91's clash sanity checking change, Markus Armbruster, 2015/11/03
- [Qemu-devel] [PATCH 5/7] qapi: Eliminate QAPISchemaObjectType.check() variable members, Markus Armbruster, 2015/11/03
- [Qemu-devel] [PATCH 3/7] qapi: Clean up after previous commit, Markus Armbruster, 2015/11/03
- [Qemu-devel] [PATCH 6/7] qapi: Factor out QAPISchemaObjectTypeMember.check_clash(), Markus Armbruster, 2015/11/03
- [Qemu-devel] [PATCH v8.5 2/4] qapi: Check for QMP collisions of flat union branches, Eric Blake, 2015/11/02
- [Qemu-devel] [PATCH v8.5 3/4] qapi: Fix check for variant tag values collision, Eric Blake, 2015/11/02
- [Qemu-devel] [PATCH v8.5 4/4] qapi: Consolidate collision detection code, Eric Blake, 2015/11/02