Mesa (master): genxml: pack: deal with default field not being simple integers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat May 9 07:31:43 UTC 2020


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

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Tue May  5 12:43:35 2020 +0300

genxml: pack: deal with default field not being simple integers

Storing integers into enums doesn't seem to cause issues in C, but
with our builder tests written in C++ this causes warnings/errors.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4938>

---

 src/intel/genxml/gen_pack_header.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/intel/genxml/gen_pack_header.py b/src/intel/genxml/gen_pack_header.py
index 0d95c4e9dd2..feeaed01e09 100644
--- a/src/intel/genxml/gen_pack_header.py
+++ b/src/intel/genxml/gen_pack_header.py
@@ -617,7 +617,13 @@ class Parser(object):
                 continue
             if field.default is None:
                 continue
-            default_fields.append("   .%-35s = %6d" % (field.name, field.default))
+
+            if field.is_builtin_type():
+                default_fields.append("   .%-35s = %6d" % (field.name, field.default))
+            else:
+                # Default values should not apply to structures
+                assert field.is_enum_type()
+                default_fields.append("   .%-35s = (enum %s) %6d" % (field.name, self.gen_prefix(safe_name(field.type)), field.default))
 
         if default_fields:
             print('#define %-40s\\' % (self.gen_prefix(name + '_header')))



More information about the mesa-commit mailing list