patch 8.2.2465: using freed memory in :psearch
Problem: Using freed memory in :psearch. (houyunsong)
Solution: Check the current window is still valid. Fix flaky test.
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index b1a235c..cb5c62f 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -60,7 +60,7 @@
let g:triggered = 0
au CursorHoldI * let g:triggered += 1
set updatetime=20
- call timer_start(100, 'ExitInsertMode')
+ call timer_start(200, 'ExitInsertMode')
call feedkeys('a', 'x!')
call assert_equal(1, g:triggered)
unlet g:triggered
@@ -2413,9 +2413,18 @@
pedit xx
n x
- au WinEnter * quit
+ augroup winenter
+ au WinEnter * if winnr('$') > 2 | quit | endif
+ augroup END
split
- au! WinEnter
+
+ augroup winenter
+ au! WinEnter
+ augroup END
+
+ bwipe xx
+ bwipe x
+ pclose
endfunc
func Test_BufWrite_lockmarks()
@@ -2737,4 +2746,17 @@
au! BufWinLeave
endfunc
+func Test_autocmd_quit_psearch()
+ sn aa bb
+ augroup aucmd_win_test
+ au!
+ au BufEnter,BufLeave,BufNew,WinEnter,WinLeave,WinNew * if winnr('$') > 1 | q | endif
+ augroup END
+ ps /
+
+ augroup aucmd_win_test
+ au!
+ augroup END
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab