summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--top/maint.mk7
2 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 8e8ba77718..7cfc6f73c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2016-08-02 Ján Tomko <jtomko@redhat.com>
+
+ maint.mk: expand the prohibit_doubled_word regex
+ This check has a static list of words that are checked for
+ repetitions. Expand it before running the perl script to
+ avoid using expensive captures. This decreases the cost
+ for libvirt from 1.66s to 0.66s.
+ * top/maint.mk (prohibit_doubled_word_expanded_): Define.
+ (sc_prohibit_doubled_word): Use it.
+
2016-07-26 Ján Tomko <jtomko@redhat.com>
useless-if-before-free: skip non-matching lines early
diff --git a/top/maint.mk b/top/maint.mk
index 9ca2bd3b32..868e10f004 100644
--- a/top/maint.mk
+++ b/top/maint.mk
@@ -962,8 +962,13 @@ perl_filename_lineno_text_ = \
-e ' print "$$ARGV:$$n:$$v\n";' \
-e ' }'
+prohibit_doubled_words_ = \
+ the then in an on if is it but for or at and do to
+# expand the regex before running the check to avoid using expensive captures
+prohibit_doubled_word_expanded_ = \
+ $(join $(prohibit_doubled_words_),$(addprefix \s+,$(prohibit_doubled_words_)))
prohibit_doubled_word_RE_ ?= \
- /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims
+ /\b(?:$(subst $(_sp),|,$(prohibit_doubled_word_expanded_)))\b/gims
prohibit_doubled_word_ = \
-e 'while ($(prohibit_doubled_word_RE_))' \
$(perl_filename_lineno_text_)