changeset 17231:e9ebf3f27af6 v8.1.1615

patch 8.1.1615: crash when passing buffer number to popup_create() commit https://github.com/vim/vim/commit/7866b87958cf0c2f3312f2c3d7fb8d6eed28b512 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jul 1 22:21:01 2019 +0200 patch 8.1.1615: crash when passing buffer number to popup_create() Problem: Crash when passing buffer number to popup_create(). (Yasuhiro Matsumoto) Solution: Initialze the window properly.
author Bram Moolenaar <Bram@vim.org>
date Mon, 01 Jul 2019 22:30:05 +0200
parents eaf422739e26
children 45da73873ed6
files src/popupwin.c src/testdir/test_popupwin.vim src/version.c
diffstat 3 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1056,8 +1056,7 @@ popup_create(typval_T *argvars, typval_T
     {
 	// use existing buffer
 	new_buffer = FALSE;
-	wp->w_buffer = buf;
-	++buf->b_nwindows;
+	win_init_popup_win(wp, buf);
 	buffer_ensure_loaded(buf);
     }
     else
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1668,4 +1668,9 @@ func Test_popupwin_with_buffer()
   call assert_equal({}, popup_getpos(winid))
   call assert_equal(1, bufloaded(buf))
   exe 'bwipe! ' .. buf
+
+  edit test_popupwin.vim
+  let winid = popup_create(bufnr(''), {})
+  redraw
+  call popup_close(winid)
 endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1615,
+/**/
     1614,
 /**/
     1613,