summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorDylan Baker <[email protected]>2017-02-21 11:16:43 -0800
committerDylan Baker <[email protected]>2017-03-22 16:22:00 -0700
commit9050138af77c22cb6ba5b6d6cde74da6af134ee6 (patch)
tree88e335322ae45cc919635873da7708c7d5efdf14 /src/intel
parent4d4697f86889d6ef89cf8bab94ebcfb4b7be461d (diff)
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 <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/vulkan/anv_entrypoints_gen.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/intel/vulkan/anv_entrypoints_gen.py b/src/intel/vulkan/anv_entrypoints_gen.py
index b5bd6f17656..2c0c968222e 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