diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2019-08-23 13:23:15 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2019-08-23 13:23:15 +0300 |
commit | 8de8e60457bc273694f4b42e4f3f7148bd075576 (patch) | |
tree | 26666bd5df54d7520810ad18e7476db3e961cd58 | |
parent | ea165901ac317100d3d54bc2ad7fc3582b1dd53c (diff) | |
download | egawk-8de8e60457bc273694f4b42e4f3f7148bd075576.tar.gz egawk-8de8e60457bc273694f4b42e4f3f7148bd075576.tar.bz2 egawk-8de8e60457bc273694f4b42e4f3f7148bd075576.zip |
Small code cleanup in re.c.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | re.c | 9 |
2 files changed, 9 insertions, 4 deletions
@@ -1,6 +1,8 @@ 2019-08-23 Arnold D. Robbins <arnold@skeeve.com> - * main.c: Fix whitespace issues. + * main.c (main): Fix whitespace issues. + * re.c (re_update): Small code cleanup in handling t->re_cnt. + Thanks to Andrew Schorr. 2019-08-21 Arnold D. Robbins <arnold@skeeve.com> @@ -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 */ |