[Mesa-dev] [PATCH 20/41] glapi: gl_XML.py: make gl_api.categoryIterate a generator

Ian Romanick idr at freedesktop.org
Tue Apr 19 22:14:59 UTC 2016


On 03/31/2016 05:04 PM, Dylan Baker wrote:
> This does basically the same thing as the previous implementation,
> although it uses sorted() to act on the dictionary without first copying
> the keys out into a list, and then indexing back into the dict; and uses
> yield to make the method a generator, removing the need to make another
> list.
> 
> Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
> ---
>  src/mapi/glapi/gen/gl_XML.py | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py
> index 9298995..b7178d6 100644
> --- a/src/mapi/glapi/gen/gl_XML.py
> +++ b/src/mapi/glapi/gen/gl_XML.py
> @@ -964,16 +964,13 @@ class gl_api(object):
>          Iterate over all known categories in the order specified by
>          classify_category.  Each iterated value is a tuple of the
>          name and number (which may be None) of the category.
> +

Spurious blank line?

With that fixed (or not, if there's a reason for it), this patch is

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

>          """
> -        list = []
>          for cat_type in xrange(4):
> -            keys = self.categories[cat_type].keys()
> -            keys.sort()
> -
> -            for key in keys:
> -                list.append(self.categories[cat_type][key])
> -
> -        return iter(list)
> +            # iteritems and _ are required to make sorted() work, since we want
> +            # to sort by key but return the the value.
> +            for _, v in sorted(self.categories[cat_type].iteritems()):
> +                yield v
>  
>      def get_category_for_name(self, name):
>          if name in self.category_dict:
> 



More information about the mesa-dev mailing list