diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-03-21 19:23:12 +0100 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2017-03-22 18:43:00 +0100 |
commit | b82e3358e006264187f104bb0321104621bcc811 (patch) | |
tree | 5213b5b41398bc3e5547f2e76cb58d9e1db8ce80 | |
parent | 9c8540edfd52c77678eac84e48beb56171487b3f (diff) | |
download | rneovim-b82e3358e006264187f104bb0321104621bcc811.tar.gz rneovim-b82e3358e006264187f104bb0321104621bcc811.tar.bz2 rneovim-b82e3358e006264187f104bb0321104621bcc811.zip |
vim-patch:8.0.0083
Problem: Using freed memory with win_getid(). (Domenique Pelle)
Solution: For the current tab use curwin.
https://github.com/vim/vim/commit/8e639052638a9bb8c7dd6e3e10776b1218cec1a3
-rw-r--r-- | src/nvim/testdir/test_window_id.vim | 9 | ||||
-rw-r--r-- | src/nvim/window.c | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/src/nvim/testdir/test_window_id.vim b/src/nvim/testdir/test_window_id.vim index 66656e1d0a..b3b506d04d 100644 --- a/src/nvim/testdir/test_window_id.vim +++ b/src/nvim/testdir/test_window_id.vim @@ -92,3 +92,12 @@ func Test_win_getid() only! endfunc + +func Test_win_getid_curtab() + tabedit X + tabfirst + copen + only + call assert_equal(win_getid(1), win_getid(1, 1)) + tabclose! +endfunc diff --git a/src/nvim/window.c b/src/nvim/window.c index 15482d9061..ce322e1185 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -5821,7 +5821,11 @@ int win_getid(typval_T *argvars) if (tp == NULL) { return -1; } - wp = tp->tp_firstwin; + if (tp == curtab) { + wp = firstwin; + } else { + wp = tp->tp_firstwin; + } } for ( ; wp != NULL; wp = wp->w_next) { if (--winnr == 0) { |