diff src/quickfix.c @ 13756:c38f29387245 v8.0.1750

patch 8.0.1750: crash when clearing loccation list in autocommand commit https://github.com/vim/vim/commit/3b9474b4ad4d85b5396f7f641b436f193dc9d486 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Apr 23 21:29:48 2018 +0200 patch 8.0.1750: crash when clearing loccation list in autocommand Problem: Crash when clearing loccation list in autocommand. Solution: Check if "qi" equals "ql_info". (Yegappan Lakshmanan)
author Christian Brabandt <cb@256bit.org>
date Mon, 23 Apr 2018 21:30:06 +0200
parents b33f04873475
children aef8ba129a4f
line wrap: on
line diff
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -5897,7 +5897,6 @@ ex_helpgrep(exarg_T *eap)
     char_u	*lang;
 #endif
     qf_info_T	*qi = &ql_info;
-    qf_info_T	*save_qi;
     int		new_qi = FALSE;
     win_T	*wp;
     char_u	*au_name =  NULL;
@@ -5951,9 +5950,6 @@ ex_helpgrep(exarg_T *eap)
 	}
     }
 
-    /* Autocommands may change the list. Save it for later comparison */
-    save_qi = qi;
-
     regmatch.regprog = vim_regcomp(eap->arg, RE_MAGIC + RE_STRING);
     regmatch.rm_ic = FALSE;
     if (regmatch.regprog != NULL)
@@ -6086,7 +6082,7 @@ ex_helpgrep(exarg_T *eap)
     {
 	apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
 					       curbuf->b_fname, TRUE, curbuf);
-	if (!new_qi && qi != save_qi && qf_find_buf(qi) == NULL)
+	if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
 	    /* autocommands made "qi" invalid */
 	    return;
     }