On 03/31/2016 06:04 PM, Dylan Baker wrote:
This implementation is somewhat more efficient than the previous, and is
less code. It works by replacing one of the list building functions with
a generator, so that the last list can be avoided. It also decreases the
size of the list that remains by using sorting instead of a sparse list.

Signed-off-by: Dylan Baker <dylanx.c.ba...@intel.com>
---
  src/mapi/glapi/gen/gl_XML.py | 14 ++++++--------
  1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/mapi/glapi/gen/gl_XML.py b/src/mapi/glapi/gen/gl_XML.py
index f96e44a..221bd18 100644
--- a/src/mapi/glapi/gen/gl_XML.py
+++ b/src/mapi/glapi/gen/gl_XML.py
@@ -940,17 +940,15 @@ class gl_api(object):
      def functionIterateByOffset(self):
          max_offset = max(f.offset for f in 
self.functions_by_name.itervalues())

-        temp = [None for i in range(max_offset + 1)]
+        temp = []
          for func in self.functions_by_name.itervalues():
              if func.offset != -1:
-                temp[func.offset] = func
+                temp.append((func.offset, func))

-        list = []
-        for i in range(max_offset + 1):
-            if temp[i]:
-                list.append(temp[i])
-
-        return iter(list)
+        for i, (_, func) in enumerate(sorted(temp, key=lambda i: i[0])):
+            yield func
+            if i > max_offset:
+                break

      def functionIterateAll(self):
          return self.functions_by_name.itervalues()


Knowing Python, but not all the newer/fancier techniques, I would have no idea what this code is doing. Could you at least add a comment explaining what's going on?

Same thing for patches 23, 40.

-Brian

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to