updated for version 7.3.1149
Problem: New regexp engine: Matching plain text could be faster.
Solution: Detect a plain text match and handle it specifically. Add
vim_regfree().
diff --git a/src/eval.c b/src/eval.c
index d0d154d..da3d2bd 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -4560,7 +4560,7 @@
if (regmatch.regprog != NULL)
{
n1 = vim_regexec_nl(®match, s1, (colnr_T)0);
- vim_free(regmatch.regprog);
+ vim_regfree(regmatch.regprog);
if (type == TYPE_NOMATCH)
n1 = !n1;
}
@@ -13981,7 +13981,7 @@
rettv->vval.v_number += (varnumber_T)(str - expr);
}
}
- vim_free(regmatch.regprog);
+ vim_regfree(regmatch.regprog);
}
theend:
@@ -17214,7 +17214,7 @@
str = regmatch.endp[0];
}
- vim_free(regmatch.regprog);
+ vim_regfree(regmatch.regprog);
}
p_cpo = save_cpo;
@@ -21066,7 +21066,7 @@
list_func_head(fp, FALSE);
}
}
- vim_free(regmatch.regprog);
+ vim_regfree(regmatch.regprog);
}
}
if (*p == '/')
@@ -24220,7 +24220,7 @@
if (ga.ga_data != NULL)
STRCPY((char *)ga.ga_data + ga.ga_len, tail);
- vim_free(regmatch.regprog);
+ vim_regfree(regmatch.regprog);
}
ret = vim_strsave(ga.ga_data == NULL ? str : (char_u *)ga.ga_data);