qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v12 22/36] qapi: Don't let implicit enum MAX mem


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH v12 22/36] qapi: Don't let implicit enum MAX member collide
Date: Wed, 18 Nov 2015 14:12:44 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Eric Blake <address@hidden> writes:

> Now that we guarantee the user doesn't have any enum values
> beginning with a single underscore, we can use that for our
> own purposes.  Renaming ENUM_MAX to ENUM__MAX makes it obvious
> that the sentinel is generated.

The ENUM__MAX are mildly ugly.  If we cared, we could get rid of most or
all uses.  Right now, I don't.

Hmm, perhaps these ENUM__MAX are your motivation for rejecting adjacent
[-_] in the previous patch, to catch clashes like (foolishly named) type
'FOO--MAX' with enumeration type 'Foo'.  I acknowledge the clash.
However, there are many more clashes we don't attempt to catch,
e.g. type 'Foo-lookup' with enumeration type 'Foo'.  Perhaps we want to
build a real fence later, but right now I don't want us to ram in more
scattered fence laths.

Might want to say something like "Rejecting enum members named 'MAX' is
now useless, and will be dropped in the next patch".

> This patch was mostly generated by applying a temporary patch:
>
> |diff --git a/scripts/qapi.py b/scripts/qapi.py
> |index e6d014b..b862ec9 100644
> |--- a/scripts/qapi.py
> |+++ b/scripts/qapi.py
> |@@ -1570,6 +1570,7 @@ const char *const %(c_name)s_lookup[] = {
> |     max_index = c_enum_const(name, 'MAX', prefix)
> |     ret += mcgen('''
> |     [%(max_index)s] = NULL,
> |+// %(max_index)s
> | };
> | ''',
> |                max_index=max_index)
>
> then running:
>
> $ cat qapi-{types,event}.c tests/test-qapi-types.c |
>     sed -n 's,^// \(.*\)MAX,s|\1MAX|\1_MAX|g,p' > list
> $ git grep -l _MAX | xargs sed -i -f list
>
> The only things not generated are the changes in scripts/qapi.py.
>
> Signed-off-by: Eric Blake <address@hidden>

Patch looks good.



reply via email to

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