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.
diff --git a/src/popupwin.c b/src/popupwin.c
index 3af35b6..d988cba 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -1056,8 +1056,7 @@
     {
 	// use existing buffer
 	new_buffer = FALSE;
-	wp->w_buffer = buf;
-	++buf->b_nwindows;
+	win_init_popup_win(wp, buf);
 	buffer_ensure_loaded(buf);
     }
     else
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 32ce96b..f89d566 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1668,4 +1668,9 @@
   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
diff --git a/src/version.c b/src/version.c
index 8a9f347..ec541b4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1615,
+/**/
     1614,
 /**/
     1613,