0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.4.528

Problem:    Crash when using matchadd() (Yasuhiro Matsumoto)
Solution:   Copy the match regprog.
This commit is contained in:
Bram Moolenaar
2014-11-27 13:37:10 +01:00
parent 8c731505b0
commit cbdf0a0b4a
2 changed files with 12 additions and 0 deletions

View File

@@ -7588,6 +7588,12 @@ next_search_hl(win, shl, lnum, mincol, cur)
shl->lnum = lnum;
if (shl->rm.regprog != NULL)
{
/* Remember whether shl->rm is using a copy of the regprog in
* cur->match. */
int regprog_is_copy = (shl != &search_hl && cur != NULL
&& shl == &cur->hl
&& cur->match.regprog == cur->hl.rm.regprog);
nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum,
matchcol,
#ifdef FEAT_RELTIME
@@ -7596,6 +7602,10 @@ next_search_hl(win, shl, lnum, mincol, cur)
NULL
#endif
);
/* Copy the regprog, in case it got freed and recompiled. */
if (regprog_is_copy)
cur->match.regprog = cur->hl.rm.regprog;
if (called_emsg || got_int)
{
/* Error while handling regexp: stop using this regexp. */

View File

@@ -741,6 +741,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
528,
/**/
527,
/**/