Mesa (master): anv: don't use Element.get in anv_entrypoints_gen.py

Dylan Baker dbaker at kemper.freedesktop.org
Wed Mar 22 23:22:24 UTC 2017


Module: Mesa
Branch: master
Commit: 9050138af77c22cb6ba5b6d6cde74da6af134ee6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9050138af77c22cb6ba5b6d6cde74da6af134ee6

Author: Dylan Baker <dylan at pnwbakers.com>
Date:   Tue Feb 21 11:16:43 2017 -0800

anv: don't use Element.get in anv_entrypoints_gen.py

This has the potential to mask errors, since Element.get works like
dict.get, returning None if the element isn't found. I think the reason
that Element.get was used is that vulkan has one extension that isn't
really an extension, and thus is missing the 'protect' field.

This patch changes the behavior slightly by replacing get with explicit
lookup in the Element.attrib dictionary, and using xpath to only iterate
over extensions with a "protect" attribute.

Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>

---

 src/intel/vulkan/anv_entrypoints_gen.py | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py
index b5bd6f1765..2c0c968222 100644
--- a/src/intel/vulkan/anv_entrypoints_gen.py
+++ b/src/intel/vulkan/anv_entrypoints_gen.py
@@ -305,13 +305,14 @@ def get_entrypoints(doc, entrypoints_to_defines):
 def get_entrypoints_defines(doc):
     """Maps entry points to extension defines."""
     entrypoints_to_defines = {}
-    extensions = doc.findall('./extensions/extension')
-    for extension in extensions:
-        define = extension.get('protect')
-        entrypoints = extension.findall('./require/command')
-        for entrypoint in entrypoints:
-            fullname = entrypoint.get('name')
+
+    for extension in doc.findall('./extensions/extension[@protect]'):
+        define = extension.attrib['protect']
+
+        for entrypoint in extension.findall('./require/command'):
+            fullname = entrypoint.attrib['name']
             entrypoints_to_defines[fullname] = define
+
     return entrypoints_to_defines
 
 




More information about the mesa-commit mailing list