patch 9.1.1331: Leaking memory with cmdcomplete()
Problem: Leaking memory with cmdcomplete()
(zeertzjq, after v9.1.1329)
Solution: free the memory (Girish Palya)
closes: #17190
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index 45f69bb..5b87d78 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -1244,7 +1244,10 @@
// Save cmdline before expansion
if (ccline->cmdbuff != NULL)
+ {
+ vim_free(cmdline_orig);
cmdline_orig = vim_strnsave(ccline->cmdbuff, ccline->cmdlen);
+ }
if (xp->xp_numfiles == -1)
{
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 1137708..8445236 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1916,8 +1916,7 @@
}
// Trigger CmdlineLeavePre autocommand
- if (ccline.cmdfirstc != NUL && (c == '\n' || c == '\r' || c == K_KENTER
- || c == ESC || c == Ctrl_C))
+ if (c == '\n' || c == '\r' || c == K_KENTER || c == ESC || c == Ctrl_C)
trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINELEAVEPRE);
// The wildmenu is cleared if the pressed key is not used for
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index ae58711..6f83b9c 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -2038,6 +2038,12 @@
call assert_equal('', g:log)
call feedkeys(":echo hello", "tx")
call assert_equal('CmdlineLeavePre', g:log)
+ let g:count = 0
+ autocmd CmdlineLeavePre * let g:count += 1
+ call feedkeys(":let c = input('? ')\<cr>B\<cr>", "tx")
+ call assert_equal(2, g:count)
+ unlet! g:count
+ unlet! g:log
bw!
endfunc
diff --git a/src/version.c b/src/version.c
index 048788e..2209282 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1331,
+/**/
1330,
/**/
1329,