Running regular expressions with capture groups is expensive.
Bail out early if the line does not start with a '#'.

This reduces the runtime of the check by two thirds.

Signed-off-by: Ján Tomko <jto...@redhat.com>
---
 scripts/prohibit-duplicate-header.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/scripts/prohibit-duplicate-header.py 
b/scripts/prohibit-duplicate-header.py
index dfdfa0bf0b..420311ccef 100644
--- a/scripts/prohibit-duplicate-header.py
+++ b/scripts/prohibit-duplicate-header.py
@@ -30,6 +30,10 @@ def check_file(filename):
         for line in fh:
             lineno = lineno + 1
 
+            # skip non-matching lines early
+            if line[0] != '#':
+                continue
+
             headermatch = re.search(r'''^# *include *[<"]([^>"]*\.h)[">]''', 
line)
             if headermatch is not None:
                 inc = headermatch.group(1)
-- 
2.19.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to