patch 8.1.2109: popup_getoptions() hangs with tab-local popup

Problem:    popup_getoptions() hangs with tab-local popup.
Solution:   Correct pointer name. (Marko Mahnič, closes #5006)
diff --git a/src/popupwin.c b/src/popupwin.c
index a77d98b..0681207 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -2636,12 +2636,12 @@
 	i = 1;
 	FOR_ALL_TABPAGES(tp)
 	{
-	    win_T *p;
+	    win_T *twp;
 
-	     for (p = tp->tp_first_popupwin; p != NULL; p = wp->w_next)
-		 if (p->w_id == id)
+	     for (twp = tp->tp_first_popupwin; twp != NULL; twp = twp->w_next)
+		 if (twp->w_id == id)
 		     break;
-	     if (p != NULL)
+	     if (twp != NULL)
 		 break;
 	     ++i;
 	}
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index b9d6d83..9d8a0d0 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -2556,4 +2556,16 @@
   call popup_clear()
 endfunc
 
+func Test_popupwin_getoptions_tablocal()
+  topleft split
+  let win1 = popup_create('nothing', #{maxheight: 8})
+  let win2 = popup_create('something', #{maxheight: 10})
+  let win3 = popup_create('something', #{maxheight: 15})
+  call assert_equal(8, popup_getoptions(win1).maxheight)
+  call assert_equal(10, popup_getoptions(win2).maxheight)
+  call assert_equal(15, popup_getoptions(win3).maxheight)
+  call popup_clear()
+  quit
+endfunc
+
 " vim: shiftwidth=2 sts=2
diff --git a/src/version.c b/src/version.c
index 469b759..00374c2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2109,
+/**/
     2108,
 /**/
     2107,