diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-10-15 07:24:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-15 07:24:03 +0800 |
commit | 1c478391ca7754bf5ecb4b76c29acfa9b4978393 (patch) | |
tree | ceab958b547349b322444f5eb7f1f72524b96d0a /src/nvim/syntax.c | |
parent | cb7da02701d542d3c1618f44f6217944986f09f9 (diff) | |
download | rneovim-1c478391ca7754bf5ecb4b76c29acfa9b4978393.tar.gz rneovim-1c478391ca7754bf5ecb4b76c29acfa9b4978393.tar.bz2 rneovim-1c478391ca7754bf5ecb4b76c29acfa9b4978393.zip |
vim-patch:9.0.0750: crash when popup closed in callback (#20659)
Problem: Crash when popup closed in callback. (Maxim Kim)
Solution: In syntax_end_parsing() check that syn_block is valid.
https://github.com/vim/vim/commit/0abd6cf62d65180dc2c40d67cd95f13b0691f7ea
Diffstat (limited to 'src/nvim/syntax.c')
-rw-r--r-- | src/nvim/syntax.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index 575d475b87..ea78397d8c 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -1327,10 +1327,13 @@ static bool syn_stack_equal(synstate_T *sp) // displayed line // displayed line // lnum -> line below window -void syntax_end_parsing(linenr_T lnum) +void syntax_end_parsing(win_T *wp, linenr_T lnum) { synstate_T *sp; + if (syn_block != wp->w_s) { + return; // not the right window + } sp = syn_stack_find_entry(lnum); if (sp != NULL && sp->sst_lnum < lnum) { sp = sp->sst_next; |