]> xenbits.xensource.com Git - xen.git/commitdiff
build: compat-xlat-header.py: optimisation to search for just '{' instead of [{}]
authorAnthony PERARD <anthony.perard@citrix.com>
Thu, 19 Jan 2023 15:22:56 +0000 (15:22 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 6 Feb 2023 10:22:12 +0000 (10:22 +0000)
`fields` and `extrafields` always all the parts of a sub-struct, so
when there is '}', there is always a '{' before it. Also, both are
lists.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/tools/compat-xlat-header.py

index ae5c9f11c9105dad1cea3686120f255ac28d2e8d..2b805b23a8729acf6f1750d112bf7aa1704ab0af 100644 (file)
@@ -8,7 +8,6 @@ re_identifier = re.compile(r'^[a-zA-Z_]')
 re_compat_handle = re.compile(r'^COMPAT_HANDLE\((.*)\)$')
 re_pad = re.compile(r'^_pad\d*$')
 re_compat = re.compile(r'^compat_.*_t$')
-re_brackets = re.compile(r'[{}]')
 
 def removeprefix(s, prefix):
     if s.startswith(prefix):
@@ -105,7 +104,7 @@ def handle_field(prefix, name, id, type, fields):
         else:
             k = id.replace('.', '_')
             print("%sXLAT_%s_HNDL_%s(_d_, _s_);" % (prefix, name, k), end='')
-    elif not re_brackets.search(' '.join(fields)):
+    elif not '{' in fields:
         tag = ' '.join(fields)
         tag = re.sub(r'\s*(struct|union)\s+(compat_)?(\w+)\s.*', '\\3', tag)
         print(" \\")
@@ -290,7 +289,7 @@ def build_body(name, tokens):
     print(" \\\n} while (0)")
 
 def check_field(kind, name, field, extrafields):
-    if not re_brackets.search(' '.join(extrafields)):
+    if not '{' in extrafields:
         print("; \\")
         if len(extrafields) != 0:
             for token in extrafields: