Use a simple if "substr" in line before running a regular expression, which saves time, especially if the regex has a capture group. This reduces runtime of the check by almost 78 % for me. Signed-off-by: Ján Tomko <jtomko@xxxxxxxxxx> --- scripts/check-aclrules.py | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/scripts/check-aclrules.py b/scripts/check-aclrules.py index d145e59164..40c47c1c6b 100755 --- a/scripts/check-aclrules.py +++ b/scripts/check-aclrules.py @@ -150,13 +150,21 @@ def process_file(filename): # Looks for anything which appears to be a function # body name. Doesn't matter if we pick up bogus stuff # here, as long as we don't miss valid stuff - m = re.search(r'''\b(\w+)\(''', line) + m = None + if "(" in line: + m = re.search(r'''\b(\w+)\(''', line) if m is not None: maybefunc = m.group(1) elif brace > 0: - ensureacl = re.search(r'''(\w+)EnsureACL''', line) - checkacl = re.search(r'''(\w+)CheckACL''', line) - stub = re.search(r'''\b(\w+)\(''', line) + ensureacl = None + checkacl = None + stub = None + if "EnsureACL" in line: + ensureacl = re.search(r'''(\w+)EnsureACL''', line) + if "CheckACL" in line: + checkacl = re.search(r'''(\w+)CheckACL''', line) + if "(" in line: + stub = re.search(r'''\b(\w+)\(''', line) if ensureacl is not None: # Record the fact that maybefunc contains an # ACL call, and make sure it is the right call! @@ -210,7 +218,9 @@ def process_file(filename): # every func listed there, has an impl which calls # an ACL function if intable: - assign = re.search(r'''\.(\w+)\s*=\s*(\w+),?''', line) + assign = None + if '"' in line: + assign = re.search(r'''\.(\w+)\s*=\s*(\w+),?''', line) if "}" in line: intable = False table = None @@ -237,8 +247,10 @@ def process_file(filename): file=sys.stderr) errs = True else: - m = re.search(r'''^(?:static\s+)?(vir(?:\w+)?Driver)\s+''', - line) + m = None + if "Driver" in line: + m = re.search(r'''^(?:static\s+)?(vir(?:\w+)?Driver)\s+''', + line) if m is not None: name = m.group(1) if name not in ["virNWFilterCallbackDriver", -- 2.19.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list