aboutsummaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2019-08-23 13:23:15 +0300
committerArnold D. Robbins <arnold@skeeve.com>2019-08-23 13:23:15 +0300
commit8de8e60457bc273694f4b42e4f3f7148bd075576 (patch)
tree26666bd5df54d7520810ad18e7476db3e961cd58 /re.c
parentea165901ac317100d3d54bc2ad7fc3582b1dd53c (diff)
downloadegawk-8de8e60457bc273694f4b42e4f3f7148bd075576.tar.gz
egawk-8de8e60457bc273694f4b42e4f3f7148bd075576.tar.bz2
egawk-8de8e60457bc273694f4b42e4f3f7148bd075576.zip
Small code cleanup in re.c.
Diffstat (limited to 're.c')
-rw-r--r--re.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/re.c b/re.c
index 91cff4d6..a23e7f6c 100644
--- a/re.c
+++ b/re.c
@@ -438,9 +438,12 @@ re_update(NODE *t)
refree(t->re_reg[1]);
t->re_reg[1] = NULL;
}
- if (t->re_cnt > 0)
- t->re_cnt++;
- if (t->re_cnt > 10)
+ if (t->re_cnt > 0 && ++t->re_cnt > 10)
+ /*
+ * The regex appears to update frequently, so disable DFA
+ * matching (which trades off expensive upfront compilation
+ * overhead for faster subsequent matching).
+ */
t->re_cnt = 0;
if (t->re_text == NULL) {
/* reset regexp text if needed */