diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-11-11 11:18:05 -0500 |
---|---|---|
committer | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2020-11-11 14:17:03 -0500 |
commit | 3013d0edfce3a53ef902decfa1f70c596c828471 (patch) | |
tree | 438ec5024488ebd8e668a1fbe1b01e04c1bf4434 /src | |
parent | 0a95549d66df63c06d775fcc329f7b63cbb46b2f (diff) | |
download | rneovim-3013d0edfce3a53ef902decfa1f70c596c828471.tar.gz rneovim-3013d0edfce3a53ef902decfa1f70c596c828471.tar.bz2 rneovim-3013d0edfce3a53ef902decfa1f70c596c828471.zip |
vim-patch:8.2.1972: crash when recreating nested fold
Problem: Crash when recreating nested fold.
Solution: Check for empty growarray. (closes vim/vim#7278)
https://github.com/vim/vim/commit/5e1f22ff614821b8fc7294c9dd22765acd403aeb
N/A patches for version.c:
vim-patch:8.2.1974: Vim9: test for has('gui_running') fails with VIMDLL
Problem: Vim9: test for has('gui_running') fails with VIMDLL.
Solution: Adjust the #ifdef. (Ken Takata, closes vim/vim#7276)
https://github.com/vim/vim/commit/29b281ba8ddf176ae34b22e6a9b8e0ddcbcce665
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/fold.c | 6 | ||||
-rw-r--r-- | src/nvim/testdir/test_fold.vim | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/nvim/fold.c b/src/nvim/fold.c index 96968a5d49..24a73a5b9f 100644 --- a/src/nvim/fold.c +++ b/src/nvim/fold.c @@ -616,7 +616,11 @@ void foldCreate(win_T *wp, pos_T start, pos_T end) break; } } - i = (int)(fp - (fold_T *)gap->ga_data); + if (gap->ga_len == 0) { + i = 0; + } else { + i = (int)(fp - (fold_T *)gap->ga_data); + } } ga_grow(gap, 1); diff --git a/src/nvim/testdir/test_fold.vim b/src/nvim/testdir/test_fold.vim index e4baa34e4a..3c90c45952 100644 --- a/src/nvim/testdir/test_fold.vim +++ b/src/nvim/testdir/test_fold.vim @@ -805,4 +805,14 @@ func Test_move_no_folds() bwipe! endfunc +" this was crashing +func Test_fold_create_delete_create() + new + fold + fold + normal zd + fold + bwipe! +endfunc + " vim: shiftwidth=2 sts=2 expandtab |